2

我在 Jenkins 中添加了一个“执行 shell”构建步骤来运行 cpplint.py

python /var/lib/jenkins/scripts/cpplint.py --counting=detailed `find path -name *.cpp

我还添加了“扫描编译器警告”并添加了 CppLint。

但是它总是得到 0 个警告,即使它在控制台输出中显示了一些警告,例如

filename.cpp:18:  Missing space after ,  [whitespace/comma] [3]
4

2 回答 2

5

如果您使用 --output=vs7 运行 cpplint.py,它将生成 Jenkins 警告插件所期望的格式。

于 2013-06-12T12:39:44.173 回答
2

我使用Cppcheck Plugincpplint_to_cppcheckxml.pycpplint.py输出转换为Cppcheck Plugin预期的 XML 格式。这真的很好用。我可以单击 Jenkins 作业页面上显示的 Cppcheck 结果中的违规问题,它将显示源代码并突出显示违规行。很酷。

您必须为cpplint提供源代码目录的绝对路径,以便在 Cppcheck 结果页面上生成超链接。我看到的唯一问题是您的Cppcheck和 cpplint 结果是合并的而不是分开的。

如果使用 Linux bash 脚本,以下是我如何将相对路径转换为绝对路径,以便 cpplint 在其输出中生成绝对路径:

# Build cpplint reports and transform to cppcheck compatible XML format
# Convert relative path to absolute path so that Jenkins job can easily display the source code errors
srcPathAbsolute=${PWD}/../dicegame/src/main
srcPathAbsolute=$(readlink -f ${srcPathAbsolute})
cpplint.py --counting=detailed ${srcPathAbsolute}/*.cpp  2>&1| cpplint_to_cppcheckxml.py &> cpplint-cppcheck-result.xml 

在我的 Jenkins 作业配置中找到 ccplint-cppcheck-result.xml 文件和我的正常 cppcheck-result.xml。

Publish cppcheck results
Cppcheck report XMLs  **/*cppcheck-result.xml

感谢cpplint_to_cppcheckxml.py的原始开发者。该脚本作为一个示例,说明如何将其他工具的输出连接到现有的 Jenkins 插件中。非常好!

于 2013-12-20T19:18:04.783 回答