2020-02-27
1 安装版本
2 被测系统代码示例
3 收集单元测试覆盖率
4 收集集成和功能测试覆盖率
代码覆盖率可在单元测试、系统测试和系统功能测试中使用
- 单元测试:测试左移,在代码提交前,可制定覆盖率要求,若不满足,不能提交
- 集成测试:接口测试
- 系统功能测试:通过用户界面操作
1 安装版本
- jacoco-0.8.2.zip 解压到:D:\software\jacoco
- apache-ant-1.10.6-bin.zip 解压到:D:\software\ant
2 被测系统代码示例
源代码:jacocodemo.zip
该示例示基于springboot框架的后端系统,主要是两个数字的加减乘除,提供restful接口给外部调用
图1 被测系统jacocoDemo
3 收集单元测试覆盖率
配置被测项目pom.xml,添加插件设置:
<!--maven测试为 default 生命周期中的test阶段。--> <!--test阶段与 maven-surefire-plugin 的test目标相绑定了, 这是一个内置的绑定。--> <!--Maven通过插件来执行 JUnit 和 TestNG 的测试用例。--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> </plugin> <!--执行单元测试命令:mvn test--> <!--结果在target目录下生产jacoco-unit.exec文件,表明jacoco正确执行--> <plugin> <groupId>org.jacoco</groupId> <artifactId>jacoco-maven-plugin</artifactId> <version>0.8.3</version> <configuration> <!--指定生成 .exec 文件的存放位置--> <destFile>target/coverage/jacoco-unit.exec</destFile> <!--Jacoco 是根据 .exec 文件生成最终的报告,所以需指定 .exec 的存放路径--> <dataFile>target/coverage/jacoco-unit.exec</dataFile> </configuration> <executions> <execution> <id>jacoco-initialize</id> <goals> <goal>prepare-agent</goal> </goals> </execution> <execution> <id>jacoco-site</id> <phase>test</phase> <goals> <goal>report</goal> </goals> </execution> </executions> </plugin>