测试是软件开发生命周期中最重要的部分。未经测试,软件无法部署。为了测试 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 应用程序并生成代码覆盖率报告。
程序:
- 创建一个简单的 Java 应用程序
- 在应用程序中记下一些测试用例
- 添加 JaCoCo maven 插件
- 添加 JaCoCo 插件后更新代码
- 添加依赖项后单击Maven选项
- 选择清洁并测试
- S选择运行按钮(绿色三角形)
- 导航代码覆盖率。
分步实施
第 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"
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选项,如下图所示。然后选择清洁和测试,然后选择运行按钮(绿色三角形)。
现在您可以看到您的测试结果,如下图所示。并且您的代码覆盖率报告已经生成。但是哪里?请参阅步骤 4。
第 4 步:要获得代码覆盖率报告,请导航到目标 > 站点 > jacoco > index.html > 右键单击 > 打开方式 > 浏览器 > 以及您的首选浏览器。所以基本上index.html是你的代码代码覆盖率报告文件。
所以你可以看到你的报告会像这样显示,百分比完全取决于你是如何编写测试用例的。
注意:绿色表示已覆盖所有代码行,这意味着您已为所有单元编写了测试用例。如果您遇到黄色线,则部分代码已被覆盖,如果您遇到红色,则代码尚未被覆盖。