关键词搜索

源码搜索 ×
×

如何在 Java 应用程序中使用 JaCoCo 生成代码覆盖率报告?

发布2022-03-07浏览907次

详情内容

测试是软件开发生命周期中最重要的部分。未经测试,软件无法部署。为了测试 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"?>
    <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选项,如下图所示。然后选择清洁测试,然后选择运行按钮(绿色三角形)。 

 

 

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

 

 

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

 

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

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

 

相关技术文章

点击QQ咨询
开通会员
返回顶部
×
微信扫码支付
微信扫码支付
确定支付下载
请使用微信描二维码支付
×

提示信息

×

选择支付方式

  • 微信支付
  • 支付宝付款
确定支付下载