Skip to content

testerhome/jacoco

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

8dbef2f · Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019
Jan 23, 2019

Repository files navigation

增量代码功能测试覆盖率

通过以下命令完成当前项目编译,生成jacoco-maven插件:

mvn install -Dmaven.test.skip=true -pl jacoco-maven-plugin -am

配置应用服务器

覆盖率情况的收集我们使用的是Jacoco工具的on-the-fly模式.(关于Jacoco的详细介绍可参考:http://www.eclemma.org/jacoco/trunk/doc/index.html)

我们需要对应用服务器做如下配置:

  • 1.下载jacocoagent.jar放置在应用服务器的lib中.

    • tomcat放置于$CATALINA_HOME/lib

    • jboss放置于$JBOSS_HOME/lib

  • 2.修改应用服务器启动配置.

    • tomcat:修改$CATALINA_HOME/bin/catalina.sh,最后一行中加入如下内容,其中2014为获取覆盖率的端口,可自定义为其他空闲端口.
    JAVA_OPTS="$JAVA_OPTS -javaagent:$CATALINA_HOME/lib/jacocoagent.jar=includes=*,output=tcpserver,port=2014,address=*"
    • jboss:修改$JBOSS_HOME/bin/run.conf,最后一行中加入如下内容,其中2014为获取覆盖率的端口,可自定义为其他空闲端口.
    JAVA_OPTS="$JAVA_OPTS -javaagent:$JBOSS_HOME/lib/jacocoagent.jar=includes=*,output=tcpserver,port=2014,address=*"

注意,根据不同系统配置,变量$CATALINA_HOME$JBOSS_HOME有可能获取不到值,jar包路径也可设置为绝对路径。

下载当前版本代码和需要对比的历史版本代码

注意:两个版本代码需处于同一级目录

导出增量覆盖率报告

在完成应用服务器配置之后,部署,启动和测试过程与原流程无异,在完成手动测试之后,我们希望导出增量代码部分的覆盖率报告,可在项目工作空间(即项目根目录)执行如下命令:

# compile(注意,编译环境需要与部署到测试环境的包的编译环境一致)
mvn compile

# dump
mvn org.jacoco:jacoco-maven-plugin:0.8.1-SNAPSHOT:dump -Djacoco.address=$ADDRESS -Djacoco.reset=false -Djacoco.port=$PORT -Djacoco.append=true

# report
mvn org.jacoco:jacoco-maven-plugin:0.8.1-SNAPSHOT:report-aggregate -DbaseDir=$baseDir

$ADDRESS为应用访问IP,$PORT为配置应用服务器时配置的端口(如上为2014),$baseDir为需要对比的历史版本代码文件夹名称。

以上两行命令可重复执行,即在发现覆盖率情况不佳之后,可根据覆盖率情况新增测试用例执行,然后执行以上两行命令重新生成覆盖率报告,覆盖率情况默认会叠加.

例如有两个分支,第一次生成覆盖率报告发现覆盖率分支1,未覆盖分支2,则可根据分支2业务新增测试用例执行覆盖分支2,重新生成覆盖率报告就会发现两个分支均得到了覆盖.

About

🔬 JaCoCo - Java Code Coverage Library

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 81.7%
  • HTML 13.1%
  • JavaScript 3.6%
  • XSLT 1.1%
  • CSS 0.5%
  • Groovy 0.0%