【问题标题】:pylint with jenkins - complince that can't find xml filepylint 与 jenkins - 无法找到 xml 文件的投诉
【发布时间】:2015-10-16 15:45:18
【问题描述】:

我正在尝试使用 jenkins 使用以下命令运行 pylint:

 pylint -f parseable -d I0011,R0801 "mypath\highLevel" | tee.exe pylint.out

该过程看起来运行良好,pylint.out 创建时包含大量信息,但在创建 pylint 报告期间出现以下错误:

13:38:27 ERROR: Publisher hudson.plugins.violations.ViolationsPublisher aborted due to exception
13:38:27 java.io.FileNotFoundException: C:\Users\DMD\.jenkins\jobs\Diamond - Run Coverage\builds\2015-07-26_13-34-30\violations\file\A:\highLevel\Monitor\InitialBootAdapter.py.xml (The filename, directory name, or volume label syntax is incorrect)

它创建了非常奇怪的路径:

C:\Users\DMD\.jenkins\jobs\Diamond - Run Coverage\builds\2015-07-26_13-34-30\violations\file\A:\highLevel\Monitor\InitialBootAdapter.py.xml

我真的不明白会发生什么。 为什么 pylint 对文件 InitialBootAdapter.py 感兴趣?为什么要查找文件 InitialBootAdapter.py.xml?谁应该创建它,为什么?我在整个环境中搜索了这个文件,但没有找到。但是我没有为我的其他 py 文件找到任何 xml? 也许您有使用 pylint 的经验并且可以提供帮助? 谢谢你。

【问题讨论】:

    标签: python jenkins pytest pylint


    【解决方案1】:

    我解决了这个问题,这需要时间和 DevOps 的帮助,但它确实有效,并且在非常小的细节上是 described in my own blog(它更像是我的在线笔记本而不是博客)。

    这篇文章最重要的一点是小工具

    import fileinput, sys
    
    if __name__ == "__main__":
        for line in fileinput.FileInput(sys.argv[1], inplace=True):
            if ".cs"  in line:
                line = line.replace("\\", "/")
            print line,
    

    这里的sys.argv[1] 应该是您的violations.xml 文件的路径。 您必须将路径作为命令行参数移动到实用程序,因为 violations.xml 文件的路径是动态的并且取决于构建 ID。

    【讨论】:

      【解决方案2】:

      我有使用 jenkins 的 pylint 的经验。这就是我如何使用它,希望它对某人有所帮助。

      第 1 步
      添加“Execute Shell”步骤并执行pylint 命令生成pylint.out。请注意

      /usr/local/bin/pylint -f parseable -d I0011,R0801 my-python-project-folder | tee pylint.out
      

      第 2 步
      确保你有Violation Report Plugin,然后点击Add post-build action-->Report Violation,将pylint.out放在相应的字段中。

      成功运行后,pylint 报告如下所示:

      【讨论】:

      • 我也做了同样的事情,但也没有用。你认为这是如何运行pylint的区别吗?使用 power shell 还是常规命令行?我认为问题在于路径创建错误:“C:\Users\DMD\.jenkins\jobs\Diamond - Run Coverage\builds\2015-07-26_13-34-30\violations\file\A:\highLevel\Monitor \InitialBootAdapter.py.xml”。这里至少有两条路径。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-21
      相关资源
      最近更新 更多