集成测试的测试覆盖率统计

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载自夜明的孤行灯

本文链接地址: https://www.huangyunkun.com/2021/02/11/test-coverage-for-integration/



单元测试的覆盖率一般都很好处理,直接使用对应的jacoco插件即可。但是一个项目不单单只有单元测试,还有集成测试等其他类型的测试。对于这些测试类型,测试覆盖率的统计还需要稍微处理下。

首先集成测试是在先将测试工程打包成jar包再封装到docker镜像中,考虑到操作性和便利性,肯定要挂在一部分主机目录到镜像中。具体的统计使用jacoco的agent模式,参数上只配置输出文件,其他都采用默认值。

首先是下载jacoco的agent和cli工具到jacoco目录中

mkdir jacoco && wget https://repo1.maven.org/maven2/org/jacoco/org.jacoco.agent/0.8.6/org.jacoco.agent-0.8.6-runtime.jar -O jacoco/jacoco.jar && wget https://repo1.maven.org/maven2/org/jacoco/org.jacoco.cli/0.8.6/org.jacoco.cli-0.8.6-nodeps.jar -O jacoco/jacoco-cli.jar

docker镜像启动时挂在目录到/jacoco目录,并在JAVA_OPTS参数中新增

-javaagent:/jacoco/jacoco.jar=destfile=/jacoco/jacoco.exec

这样就会在jacoco目录生成jacoco.exec文件了。

第二部就是把exec文件转为报告,一般是xml格式的,这一步使用jacoco-cli即可。

java -jar jacoco/jacoco-cli.jar report jacoco/jacoco.exec --classfiles dubbo-admin-server/target/classes/ --sourcefiles dubbo-admin-server/src --xml jacoco/jacoco.xml

具体目录按照需要调整,源代码不是必选项。

最后就是计算变更等后续处理了,由于使用的是codecov平台,这里使用flag区别下集成测试和单元测试就行了。

效果如图:



本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

转载自夜明的孤行灯

本文链接地址: https://www.huangyunkun.com/2021/02/11/test-coverage-for-integration/

发表评论