pylint 与 jenkins - complince 找不到 xml 文件

pylint with jenkins - complince that can't find xml file

我正在尝试 运行 使用以下命令与 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\builds15-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\builds15-07-26_13-34-30\violations\file\A:\highLevel\Monitor\InitialBootAdapter.py.xml

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

我有在 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报告如下:

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

这个post中最重要的一点是小实用程序

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。