1、将cobertura的路径设置到path中
2、将要测试的源代码,编译之后的字节码文件和所需要的jar包拷贝到一个单独的目录中做处理(直接进入Eclipse的工作空间进行拷贝)
习惯将lib/src两个文件放到bin中,目录结构如下图:
3、在命令提示符中使用命令为要生成测试覆盖率报告的代码生成一个ser的文件
3.1、生成cobertura.ser文件
将目录切换到我们上一步放置文件的目录:
执行如下命令:
cobertura-instrument --destination instrumented com/lxh/service
如下图:
生成如下的目录结构:
4、基于ser文件运行测试
4.1、
java -cp lib/cobertura-2.1.1.jar;lib/hamcrest-all-1.3.jar;lib/junit.jar;lib/mysql-connector-java-5.1.21.jar;lib/org.hamcrest.core_1.3.0.jar;lib/slf4j-api-1.7.5.jar;instrumented;.;-Dnet.sourceforge.cobertura.datafile=cobertura.ser org.junit.runner.JUnitCore com.lxh.service.TestUserService
注:-cp命令后面跟的jar包,是lib目录中的所有必需jar包
5、根据ser文件生成测试覆盖率的报告
特别注意:如果文件的编码是utf-8的,在生成报告前需要为cobertura-report.bat文件增加DfileEncoding的处理
生成测试覆盖率的报告命令如下:
cobertura-report --format html --datafile cobertura.ser --destination reports src
完成上面的步骤后,我们的测试报告生成完毕,如下图:
点击index.html即可查看报告:
从图中就可以看到我们测试案例覆盖情况,标红的代码表示测试案例未覆盖到区域。。