本文转自测试人社区,原文链接: https://ceshiren.com/t/topic/32017

一, Jacoco 简介

  • 开源代码覆盖率工具,支持Java、Kotlin
  • 计算测试代码对项目的覆盖情况
  • 定位测试未覆盖到的代码部分,帮助提升测试有效性
  • 检查程序中的废代码,反推代码设计过程中的不合理逻辑,提升代码质量
  • 测试代码覆盖率高低是衡量代码质量的因素之一
  • 原理:Java 探针,字节码插桩技术
  • 代码覆盖率统计维度
  • 指令 (Instruction)
  • 分支 (Branch)
  • 圈复杂度 (Cyclomatic Complexity)
  • 行 (Line)
  • 方法 (Method)
  • 类 (Class)

二, Jacoco 代码覆盖率检查持续集成环境准备

  • Jenkins 服务+节点已部署Java + Maven
  • Jenkins上已安装JaCoCo Plugin 插件
  • 项目配置: Java + JUnit + Maven + JaCoCo Plugin

三, 新建job

1,项目的pom文件导入jacoco相关依赖

<plugin>
                <groupId>org.jacoco</groupId>
                <artifactId>jacoco-maven-plugin</artifactId>
                <version>0.8.3</version>
                <executions>
                    <execution>
                        <id>default-prepare-agent</id>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>default-report</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>default-check</id>
                        <goals>
                            <goal>check</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <rule implementation="org.jacoco.maven.RuleConfiguration">
                                    <element>BUNDLE</element>
                                    <limits>
                                        implementation is needed only for Maven 2
                                        <limit implementation="org.jacoco.report.check.Limit">
                                            <counter>COMPLEXITY</counter>
                                            <value>COVEREDRATIO</value>
                                            <minimum>0.60</minimum>
                                        </limit>
                                    </limits>
                                </rule>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.

2,新建job配置

  • 其余配置同上
  • 构建后操作:
  • 软件测试学习笔记丨代码覆盖率集成_代码覆盖率

  • 运行job任务
  • 软件测试学习笔记丨代码覆盖率集成_Java_02