12

我已成功设置 Cobertura 以通过 Jenkins 运行并生成覆盖率报告,现在我坚持配置 Violations 以报告 pep8 测试的结果。

现在我有了它,以便我使用批处理命令运行 PEP8,它会生成一个 .txt 文件,该文件存储所有最终出现在工作区中的违规行为。

我是否必须定义批处理命令来为这些违规创建一个 xml 文件以发送到 Report Violations Post-build 操作?如果是这样,我将如何定义该命令?

4

2 回答 2

28

正如 Vajk 所指出的,您不需要 XML 文件。您可以简单地将 pep8 实用程序的输出通过管道传输到一个文件,并将其用作 Jenkins 中的违规文件。

例如,在您的 Jenkins 构建配置中:

Build -> Execute Shell -> Command

你可以写:

pep8 path/to/code > pep8_report.txt

然后在:

Post-build Actions -> Report Violations -> pep8 / XML filename pattern

添加:

pep8_report.txt

请注意,即使 UI 要求提供 XML 文件并且该文件不是 XML 文件,这对我来说在 Jenkins 版本 1.499 上工作得很好。

于 2013-07-29T15:37:32.110 回答
0

我看到这是一个非常古老的问题,但我自己很难找到答案,所以希望这对其他人有帮助。

经过大量研究后,我发现 Jenkins Violations 插件不喜欢每行之前的 ./ 位,因此只需解析 pep8 的输出(它对 flake8 也有效)就可以解决问题:

pep8 . | 's|^./||' | tee pep.txt

其中重要的一点是 sed,它将字符串(^)开头的 ./ 更改为 '',有效地删除了它们

如果 pep8 命令的输出为非零,则 tee 位是避免 Jenkins 停止的一些解决方法。

于 2018-02-08T11:01:45.060 回答