2

我已经设置 Jenkins 在所有 python 源文件上运行pylint,并且所有日志文件都生成(显然是正确的)到一个子目录中,如下所示:

Source\pylint_logs\pylint1.log, pylint2.log, ..., pylint75.log

我根据我的 Jenkins 配置页面上的说明包含了一个 --msg-template 定义:Post-build Actions->Record compiler warnings and static analysis results->Static Analysis Tools。模板显示为:

msg-template={path}:{line}: [{msg_id}, {obj}] {msg} ({symbol})

Jenkins/pylint 生成的日志文件之一的示例如下:

************* Module FigureView
myapp\Views\FigureView.py:1: [C0103, ] Module name "FigureView" doesn't conform to snake_case naming style (invalid-name)
myapp\Views\FigureView.py:30: [C0103, FigureView.__init__] Attribute name "ax" doesn't conform to snake_case naming style (invalid-name)

------------------------------------------------------------------

Your code has been rated at 8.57/10 (previous run: 8.57/10, +0.00)

对于 PyLint报告文件模式,我有: Source/pylint_logs/pylint*.log

PyLint 警告似乎正在解析文件,因为控制台输出如下所示:

[PyLint] Searching for all files in 'D:\Jenkins\workspace\PROJECT' that match the pattern 'Source/pylint_logs/pylint*.log'
[PyLint] -> found 75 files
[PyLint] Successfully parsed file D:\Jenkins\workspace\PROJECT\Source\pylint_logs\pylint1.log
[PyLint] -> found 0 issues (skipped 0 duplicates)
[PyLint] Successfully parsed file D:\Jenkins\workspace\PROJECT\Source\pylint_logs\pylint10.log
[PyLint] -> found 0 issues (skipped 0 duplicates)

这对所有 75 个文件重复,即使日志文件中有很多问题。

奇怪的是,当我第一次在这个项目中使用 Jenkins 进行原型设计时,我将其设置为仅在单个文件上运行 pylint。我遇到了另一个 StackOverflow 帖子,该帖子显示了一个 msg 模板,它允许我让它工作(无法获得 pylint 输出来填充违规图)。我什至得到了显示 PyLint 警告趋势的图表。我在每个帖子中使用了以下定义:

msg-template={path}:{line}: [{msg_id}({symbol}), {obj}] {msg}

请注意,这种格式与我的 Jenkins 页面(如前所示)推荐的格式略有不同。即使这适用于单个文件,但现在这两个模板似乎都不适用于多个文件,否则除了模板之外还有其他东西导致问题。我的图表是平线的,我总是得到 0 个问题报告。

我在 Jenkins PyLint 警告工具上找不到有用的文档。有没有人对我可以进一步研究的文档有任何想法或指示?非常感谢!

4

1 回答 1

0

确保在pylint命令中传递输出格式参数。例子:

pylint --exit-zero --output-format=parseable module1 module2 > pylint.report
于 2021-04-03T08:06:19.110 回答