`
cutecoot
  • 浏览: 120884 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Jenkins上的lint代码静态测试和代码风格检查cpplint

 
阅读更多

最近欲使用Jenkins来构建自动化测试体系。除正常的动态测试的自动化,希望添加静态测试到框架中。于是选定cppcheck和cpplint来作为代码静态走查和代码风格检查的工具。下面是使用jenkins来进行静态测试的准备工作:

一、Jenkins的代码静态走查

  1.  工具选择:因为我们主要是C++代码,所以选择cppcheck作为测试工具。
  2. Jenkins集成:cppcheck作为测试工具的另一个好处就是Jenkins上面有现成的插件可以使用。非常方便。
  3. 安装:在Jenkins插件页面,选择Jenkins Cppcheck Plug-in 并进行安装。
  4. 配置:

        a. 在job页面,增加windows batch command。遍历同级目录的Build下的所有文件,刨除externlib目录,并把结果以xml的形式输出到project_codeanalysis.xml文件。

               

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的代码风格检查

  1. 工具选择:因为我们主要遵照google的代码风格,所以使用cpplint.py。下载地址: http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py 。代码风格中文版说明: http://blog.csdn.net/shendl/article/details/6762538
  2. Jenkins集成:Jenkins目前还没有直接可以使用的cpplint的插件可用,所以这里我们使用一个warnings plug-in来收集cpplint的信息并report出来。
  3. 安装: 选择插件Warnings Plug-in并安装。
  4. 配置:
       a. 在job页面,增加windows batch command。用cpplint来检查文件,并把结果同时输出到控制台和cpplint-result.xml文件。因为cpplint的返回值会是1,所以重置下返回值。否则任务总显示失败。(必须输出到控制台,因为插件是解析控制台输出来得到报告)
cpplint.py MyFile.cpp 2>&1 | tee cpplint-result.xml
set errorlevel=0
        b.  在构建后操作中,选择scan for compiler warnings。选择cpplint。
***如果要对目录遍历,对所有文件都进行检查,可以用另一个python来检索然后调cpplint检查。如下:
import os, fnmatch, sys

def 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:
            break

if __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))
 
好了,一切都可正常运行了。每次执行过后也有统计生成。完成。
分享到:
评论
1 楼 wan_xie2007 2014-01-27  
***如果要对目录遍历,对所有文件都进行检查,可以用另一个python来检索然后调cpplint检查。这个适用在windows下。之前我还捉急windows下没有解决方案,linux下就方便多了通过find命令,然后使用xargs命令就能实现。

相关推荐

    PC-Lint代码检查工具

    PC-Lint是一款强大的静态代码分析工具,专门针对C和C++编程语言设计,旨在帮助开发者在编码阶段就发现潜在的错误和不规范的编程习惯。它通过对源代码进行深度分析,找出可能的语法错误、逻辑漏洞、未初始化的变量、...

    pclint9白盒测试工具

    2. **风格和一致性检查**:Pclint可以检查代码风格是否符合特定的编码规范,例如K&R风格或ANSI C标准,确保代码的可读性和一致性。 3. **依赖性分析**:工具可以分析头文件的包含关系,防止不必要的头文件引入,...

    android-lint-plugin:Jenkins的Android Lint解析器插件

    Android Lint是Android开发中的一个静态代码分析工具,它能够检查代码中的潜在问题,包括错误、性能优化建议、可用性问题、国际化问题等。"android-lint-plugin: Jenkins的Android Lint解析器插件"是将这个功能集成...

    Jenkins集成Java 静态代码分析工具调研和引入

    静态分析工具能够在不运行程序的情况下检查代码,提升软件可靠性并节省开发和测试的时间成本。本文章主要探讨了Java静态代码分析工具的引入和集成到Jenkins持续集成流程中。 ### 静态代码分析工具的引入 #### 什么...

    SonarLint代码质量检查工具

    SonarLint的集成不仅限于SonarQube,它还可以与多种代码仓库(如GitHub、Bitbucket等)和持续集成/持续部署(CI/CD)工具(如Jenkins、TeamCity)无缝协作,确保在整个软件开发生命周期中保持一致的代码质量标准。...

    Jenkins部署配置自动化测试项目

    在Jenkins中创建一个新的自由风格项目,配置源代码管理(如Git),添加构建步骤来运行测试脚本(例如`python -m pytest tests/`)。测试结果可以通过Jenkins的插件展示,如Test Results Analyzer,便于分析测试覆盖...

    lint静态编译

    5. **自动化集成**:静态分析工具通常可以与版本控制系统(如Git)、构建系统(如Jenkins)和持续集成/持续部署(CI/CD)流程集成,实现自动化代码检查。 **pc-lint的使用** 使用pc-lint通常涉及以下几个步骤: 1. ...

    基于Jmeter+Ant+SVN+Jenkins实现接口自动化测试

    - **分支与合并**:在不同分支上进行开发和测试,然后合并到主分支。 最后,Jenkins是持续集成和持续交付工具,它可以自动化构建、测试和部署过程,使得接口自动化测试更加高效和可靠。 4. **Jenkins集成**: - ...

    从持续集成 到 持续检查

    它可能包括静态代码分析、代码审查、单元测试、集成测试等,确保代码符合编码标准,没有潜在的缺陷和漏洞。Eclipse提供了一些插件,如PMD、Checkstyle和FindBugs,用于进行静态代码分析,帮助开发者在编码阶段就发现...

    Jenkins教程-代码质量测试工具SonarQube安装配置.docx

    SonarQube是一款广泛应用于代码质量测试和安全检测的工具,该工具可以与Jenkins集成,从而实现自动化的代码质量检测和安全检测。在本文中,我们将详细介绍如何安装和配置SonarQube,以便于与Jenkins集成。 基础环境...

    Jenkins + Gitee 实现代码自动化构建

    Jenkins + Gitee 实现代码自动化构建 Jenkins + Gitee 实现代码自动化构建 Jenkins + Gitee 实现代码自动化构建 Jenkins + Gitee 实现代码自动化构建 Jenkins + Gitee 实现代码自动化构建 Jenkins + Gitee 实现代码...

    软件测试工具,静态源代码测试工具

    在软件开发过程中,静态源代码测试工具扮演着至关重要的角色,它们主要用于在代码执行之前发现潜在的错误和缺陷。这种类型的测试无需运行程序,而是通过分析代码结构来识别潜在问题,提高了开发效率和软件质量。以下...

    Jmeter+Jenkins+maven接口自动化集成

    Jmeter+Jenkins+maven 接口自动化集成测试框架是一种自动化测试解决方案,旨在简化测试过程,提高测试效率和测试质量。该框架通过集成 Jmeter、Jenkins 和 Maven 三个软件工具,实现了自动化测试、自动构建和自动...

    Jenkins+Allure测试报告+飞书机器人发送通知.doc

    Shell 命令需要带上 Jenkins 内置变量,例如 job_url 和 job_name。 5. Python 项目结构图和 execute.py 代码 Python 项目结构图显示了项目的目录结构。execute.py 代码使用 pytest 库执行测试,并生成测试报告。...

    Jenkins+GitHub实现C项目的集成开发

    1. **持续集成**: 每次代码提交后,Jenkins都会自动拉取最新代码,进行编译、测试和质量检查。如果这些步骤都成功,表示代码是健康且可部署的。 2. **持续交付**: 如果配置了部署步骤,每次成功构建后,Jenkins会...

    updates.zip jenkins所需的静态文件

    Jenkins 是一款开源的持续集成和持续交付(CI/CD)工具,被广泛应用于软件开发过程中,用于自动化各种任务,包括构建、测试和部署。在本案例中,“updates.zip”是一个压缩包,其中包含了 Jenkins 执行其功能所需的...

    jenkins_sonarqube进行代码质量检查.zip

    里面包含了搭建教程,有jenkins+sonarqube全部资源,包括jenkins核心,sonarqube核心、sonarqube scanner、发送邮件的python脚本、table.html模板、发送到钉钉群的脚本、全部都有。

    jenkins持续集成单元测试和findbugs问题解决方案

    jenkins 持续集成单元测试和 findbugs 问题解决方案 jenkins 是一个开源的自动化服务器,可以用于自动构建、测试和部署软件项目。jenkins 提供了许多插件来支持各种类型的项目,包括 Java、C++、Python 等。今天,...

Global site tag (gtag.js) - Google Analytics