【问题标题】:Generating PEP8 xml report for Jenkins/Violations use为 Jenkins/Violations 使用生成 PEP8 xml 报告
【发布时间】:2018-02-08 19:01:45
【问题描述】:

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

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

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

【问题讨论】:

  • AFAIK 在报告违规的 pep8 行中添加 pep8 输出文件名(在工作区内)是让结果显示在 jenkins 中的唯一步骤...

标签: jenkins jenkins-plugins


【解决方案1】:

正如 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 上工作得很好。

【讨论】:

  • 你也可以使用flake8输出作为pep8违规。
  • 我已经尝试过上面的方法,它也对我有用,但问题是违规中的链接不起作用。
  • 我无法在“构建后操作”中看到“报告违规行为”。我错过了一个插件吗? (我已经安装了 Cobertura)。
  • “报告违规”需要不再维护的“违规”插件。插件页面本身推荐的警告插件并不适合所有违规插件。
  • 这很好,但是在詹金斯的违规输出中,当我点击违规时,我得到“没有发现违规”:-(
【解决方案2】:

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

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

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

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

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

【讨论】:

    猜你喜欢
    • 2013-10-31
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-31
    相关资源
    最近更新 更多