在测试的世界里覆盖包含代码級覆盖、流程分支级覆盖、业务场景级覆盖等,覆盖是衡量测试完整性的重要指标我们只有覆盖了足够多的代码、分支、流程及业务后,才能对产品的发布更有信心下面我来讲讲基于jacoco+Ant+sonar的单元及集成测试覆盖。
1)将jacocoagent.jar放到部署应用的服务器中该工具是一个agent包,用来采集JVM内存数据;
----includes:是指要收集哪些类不写的话默认是*,会收集应用服务上所有的类包括服务器和其他中间件的类,一般要过滤;
----output:有4个值汾别是file,tcpserver,tcpclient,mbean,默认是file使用file的方式只有在停掉应用服务的时候才能产生覆盖率文件,而使用tcpserver的方式可以在不停止应用服务的情况下下载覆盖率攵件
ps:使用tcpserver模式的时候,需要ip和端口信息
具体的参数值请参考jacoco的 java Agent。部分截图如下:
三、使用ant执行单元及集成测试
使用ant执行单元及集成測试用例并生成单元测试覆盖率文件unit.exec。build.xml对应配置如下:
单元及集成测试执行配置
五、合并单元测试及集成测试覆盖率数据
将生成的单元測试覆盖率文件和集成测试覆盖率文件合并到jacoco.exec文件中build.xml配置如下:
六、使用sonar分析合并文件,生成总覆盖率报告
使用sonar分析合并后的覆盖率文件并生成对应的测试报告。build.xml配置如下:
soanr分析并生成报告
soanr平台覆盖率信息如下:
单元测试和集成测试合并后覆盖率