
在之前的文章,利用JaCoCo统计接口测试中代码覆盖率 和 ant+Jacoco 统计tomcat远程部署后项目接口自动化测试或者功能测试代码覆盖率 文章中介绍了如何获取测试代码的覆盖率,但是我们有时候也会遇到这样的需要。
接口自动化,接口测试,功能测试,这三个的覆盖率是否覆盖全面。
这次功能测试我们是分模块测试,我们的甲乙丙丁四位同学的测试覆盖整合到一起正常的情况下,我们会遇到的这样的需求。那么如何去做呢。
针对如上的需求,我们怎么去做呢,其实在ant 获取测试用例的时候呢,我们可以做如下的调整,我们新增两个任务,一个任务负责 去合并测试覆盖率,一个任务负责讲合并后的覆盖率整合成新的报告,那么需要我们如何去做呢。
首先我们去创建合并的任务
<target name="merge">
<jacoco:merge destfile="jacoconew.exec">
<fileset dir="/Users/lileilei/Desktop/testplan/plan" includes="*.exec"/>
</jacoco:merge>
</target>这样,就可以去创建合并的测试报告了,我们可以去试一试。

正常的执行遇到了上诉的错误,那么我们应该如何解决呢,其实很简单,我们只需要去告诉 ant 我们要执行jacoco的位置即可。
<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
<classpath path="/Users/lileilei/Desktop/testplan/plan/jacocohome/jacocoant.jar/"/>
</taskdef>这样再次执行,正常情况我们就可以得到我们合并后的文件,

那么合并好了,接下来就是如何的去生成新的覆盖率,这里还是和之前的覆盖率生成的一样,就是变化了我们的测试覆盖率文件的存储位置。
<target name="report_mereg">
<jacoco:report>
<executiondata>
<file file="jacoconew.exec"/>
</executiondata>
<structure name="pan">
<!-- 可以按软件功能模块设置多个group,方便在report中查看 -->
<group name="pan">
<classfiles>
<!--.class文件路径,可以放在客户端-->
<fileset dir="/user"/>
</classfiles>
<sourcefiles encoding="utf-8">
<!--源代码路径,可以放在客户端-->
<fileset dir="//" />
</sourcefiles>
</group>
</structure>
<!-- report文件保存地址 -->
<html destdir="." encoding="utf-8"/>
</jacoco:report>
</target>这样再次执行,我们就可以展示我们合并后的测试报告了。
这里展示的只是真实合并中的一小部分,因为我们可能还会因为代码的差异,需要处理差异化的代码。
一切的出发点,要以解决我们实际的问题。
一切的方案都是为了迎合我们的需求。
切勿脱离真实的业务场景去实现。
如果感觉有用,点亮在看,让知识传播你我他。