Jenkins上的lint代码静态测试跟代码风格检查cpplint
Jenkins上的lint代码静态测试和代码风格检查cpplintcppcheck -j 4 --platformwin64 --enableall ../Buil
Jenkins上的lint代码静态测试和代码风格检查cpplint
cppcheck -j 4 --platform=win64 --enable=all ../Build/. -i externlib --xml 2> project_codeanalysis.xml
? ? ? ? ? b. 在构建后操作中增加publish cppcheck results。输入此xml文件名。
?
? ? *** 如果想邮件中自动发送此log,可以安装copy to slave plugin。然后把这个xml复制会server。并从邮件中发送。
?
二、 Jenkins的代码风格检查
- 工具选择:因为我们主要遵照google的代码风格,所以使用cpplint.py。下载地址:?http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py?。代码风格中文版说明:?http://blog.csdn.net/shendl/article/details/6762538
- Jenkins集成:Jenkins目前还没有直接可以使用的cpplint的插件可用,所以这里我们使用一个warnings plug-in来收集cpplint的信息并report出来。
- 安装: 选择插件Warnings Plug-in并安装。
- 配置:
? ? ? ?a.?在job页面,增加windows batch command。用cpplint来检查文件,并把结果同时输出到控制台和cpplint-result.xml文件。因为cpplint的返回值会是1,所以重置下返回值。否则任务总显示失败。(必须输出到控制台,因为插件是解析控制台输出来得到报告)cpplint.py MyFile.cpp 2>&1 | tee cpplint-result.xmlset errorlevel=0? ? ? ? b. ?在构建后操作中,选择scan for compiler warnings。选择cpplint。import os, fnmatch, sysdef all_files(root, patterns = '*', single_level = False, yield_folders=False): patterns = patterns.split(';') for path, subdirs, files in os.walk(root): if yield_folders: files.extend(subdirs) files.sort() for name in files: for pattern in patterns: if fnmatch.fnmatch(name, pattern): yield os.path.join(path,name) break if single_level: breakif __name__ == '__main__': if len(sys.argv) < 2: print 'Please set the absolute path as the first parameter for parse.' sys.exit() print sys.argv[1] for path in all_files(sys.argv[1],'*.cpp;*.h'): os.system("cpplint.py %s"%(path))?好了,一切都可正常运行了。每次执行过后也有统计生成。完成。