测试是软件开发生命周期中最重要的部分。未经测试,软件无法部署。为了测试 Java 应用程序,我们主要使用 Junit。JUnit 框架是一个用于测试的 Java 框架。现在,当需要在 Java 中执行测试时,JUnit 被用作标准。但是什么是代码覆盖率,什么是 JaCoCo?代码覆盖率是一种软件指标,用于衡量在自动化测试期间执行了多少行代码。换句话说,我们也可以说代码覆盖率描述了自动化测试覆盖的代码百分比,它检查哪些代码部分在测试套件期间运行,哪些不运行。 

JaCoCo 代表Ja va Co de Co verage 。它是一个免费的 Java 代码覆盖库,由 EclEmma 团队创建。它创建代码覆盖率报告,并与 IntelliJ IDEA、Eclipse IDE 等 IDE 很好地集成。JaCoCo 还与 Jenkins、Circle CI 等 CI/CD 工具以及 SonarQube 等项目管理工具集成。所以在本文中,我们将在 JaCoCo maven 插件的帮助下创建一个示例 Java 应用程序并生成代码覆盖率报告。 

程序:

  1. 创建一个简单的 Java 应用程序
  2. 在应用程序中记下一些测试用例
  3. 添加 JaCoCo maven 插件
  4. 添加 JaCoCo 插件后更新代码
  5. 添加依赖项后单击Maven选项
  6. 选择清洁测试
  7. S选择运行按钮(绿色三角形)
  8. 导航代码覆盖率。

分步实施

第 1 步:创建一个简单的 Java 应用程序,并使用 Junit 在应用程序内部编写一些测试用例,或者您也可以使用 Mockito。 

相关文章:您可以参考这篇文章How to Write Test Cases in Java Application using Mockito and Junit?并创建一个示例项目。 


第 2 步:将 JaCoCo maven 插件添加到您的pom.xml文件中。 

JaCoCo 的插件如下: 


  • XML
<build>


<plugins>


<plugin>


<groupId>org.jacoco</groupId>


<artifactId>jacoco-maven-plugin</artifactId>


<version>0.8.5</version>


<executions>


<execution>


<goals>


<goal>prepare-agent</goal>


</goals>


</execution>


<!-- attached to Maven test phase -->


<execution>


<id>report</id>


<phase>test</phase>


<goals>


<goal>report</goal>


</goals>


</execution>


</executions>


</plugin>


</plugins>

</build>



 

 

以下是添加 JaCoCo 插件后pom.xml文件的更新代码。


  • XML
<?xml version="1.0" encoding="UTF-8"?>


<project xmlns="http://maven.apache.org/POM/4.0.0"


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"


xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">


<modelVersion>4.0.0</modelVersion>


 


<groupId>org.example</groupId>


<artifactId>mockito-demo</artifactId>


<version>1.0-SNAPSHOT</version>


 


<dependencies>


<dependency>


<groupId>junit</groupId>


<artifactId>junit</artifactId>


<version>4.8.2</version>


</dependency>


<dependency>


<groupId>org.mockito</groupId>


<artifactId>mockito-all</artifactId>


<version>2.0.2-beta</version>


</dependency>


</dependencies>


 


<build>


<plugins>


<plugin>


<groupId>org.jacoco</groupId>


<artifactId>jacoco-maven-plugin</artifactId>


<version>0.8.5</version>


<executions>


<execution>


<goals>


<goal>prepare-agent</goal>


</goals>


</execution>


<!-- attached to Maven test phase -->


<execution>


<id>report</id>


<phase>test</phase>


<goals>


<goal>report</goal>


</goals>


</execution>


</executions>


</plugin>


</plugins>


</build>


 


<properties>


<maven.compiler.source>11</maven.compiler.source>


<maven.compiler.target>11</maven.compiler.target>


</properties>


 


</project>



第 3 步:添加依赖项后,单击右上角的Maven选项,如下图所示。然后选择清洁测试,然后选择运行按钮(绿色三角形)。 

 

java代码覆盖率测试工具 java 覆盖率_测试覆盖率

 

现在您可以看到您的测试结果,如下图所示。并且您的代码覆盖率报告已经生成。但是哪里?请参阅步骤 4。 

 

java代码覆盖率测试工具 java 覆盖率_开发语言_02

 

第 4 步:要获得代码覆盖率报告,请导航到目标 > 站点 > jacoco > index.html > 右键单击 > 打开方式 > 浏览器 > 以及您的首选浏览器。所以基本上index.html是你的代码代码覆盖率报告文件。 

 

java代码覆盖率测试工具 java 覆盖率_java_03

所以你可以看到你的报告会像这样显示,百分比完全取决于你是如何编写测试用例的。 

java代码覆盖率测试工具 java 覆盖率_后端_04

注意:绿色表示已覆盖所有代码行,这意味着您已为所有单元编写了测试用例。如果您遇到黄色线,则部分代码已被覆盖,如果您遇到红色,则代码尚未被覆盖。 

java代码覆盖率测试工具 java 覆盖率_java_05