Jenkins集成Cobertura显示代码测试覆盖率报告

一. 概述

测试驱动的开发不能超过测试所能达到的程度。测试改进了代码质量,但这也只是针对实际测试到的那部分代码而言的。您需要有一个工具告诉您程序的哪些部分没有测试到,这样就可以针对这些部分编写测试代码并找出更多 bug。

Mark Doliner 的 Cobertura (cobertura 在西班牙语是覆盖的意思)是完成这项任务的一个免费 GPL 工具。Cobertura 通过用额外的语句记录在执行测试包时,哪些行被测试到、哪些行没有被测试到,通过这种方式来度量字节码,以便对测试进行监视。然后它生成一个 HTML 或者 XML 格式的报告,指出代码中的哪些包、哪些类、哪些方法和哪些行没有测试到。可以针对这些特定的区域编写更多的测试代码,以发现所有隐藏的 bug。

下面简单介绍一下,如果使用Jenkins集成Cobertura显示代码测试覆盖率报告

二. maven集成Cobertura

我的项目是用maven作为构建工具,需要maven集成Cobertura,故要在pom.xml文件中增加cobertura-maven-plugin插件:

               
                
                
                    org.codehaus.mojo  
                    cobertura-maven-plugin  
                    2.7  
                      
                          
                            html  
                            xml  
                          
                      
                       
                
                
        

我的项目采用的是微服务架构,只需要在自己要出报告的模块pom.xml中添加如上插件即可.

三. Jenkins安装Cobertura插件
Jenkins集成Cobertura显示代码测试覆盖率报告_第1张图片
四. 配置Jenkins任务
  1. 修改maven执行命令,添加Cobertura执行命令
cobertura:cobertura
# 标注、运行测试并产生 Cobertura 覆盖率报告
Jenkins集成Cobertura显示代码测试覆盖率报告_第2张图片
  1. 在Add post build action(构建后操作)这个配置项中选择如下Publish Cobertura Coverage Report:


    Jenkins集成Cobertura显示代码测试覆盖率报告_第3张图片
  2. 选择完后会显示一个配置项, 这里填上你最终cobertura生成xml report的路径,我的路径是**/target/site/cobertura/coverage.xml

    Jenkins集成Cobertura显示代码测试覆盖率报告_第4张图片

4. 重新build项目

就可以在项目首页看到code coverage report:


Jenkins集成Cobertura显示代码测试覆盖率报告_第5张图片

第一次构建,右侧的代码覆盖率报告可能会显示为空,没有关系的,多构建几次就出来了.
点击进去,可以查看更为详细的报告信息:


Jenkins集成Cobertura显示代码测试覆盖率报告_第6张图片

具体如何查看Cobertura输出报告,可参考文章<用 Cobertura 测量测试覆盖率>.

五. 参考文章:
  1. jenkins集成cobertura,调用显示cobertura的report
  2. 用 Cobertura 测量测试覆盖率.

你可能感兴趣的:(Jenkins集成Cobertura显示代码测试覆盖率报告)