如何在Java应用程序中使用 JaCoCo 生成代码覆盖率报告?
测试是软件开发生命周期中最重要的部分。未经测试,软件无法部署。为了测试Java应用程序,我们主要使用 Junit。 JUnit 框架是一个用于测试的Java框架。现在,当需要在Java中执行测试时,JUnit 被用作标准。但是什么是代码覆盖率,什么是 JaCoCo?代码覆盖率是一种软件指标,用于衡量在自动化测试期间执行了多少行代码。换句话说,我们也可以说代码覆盖率描述了自动化测试覆盖的代码百分比,它检查哪些代码部分在测试套件期间运行,哪些不运行。
雅可可 代表Java Co de Coverage 。它是一个免费的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。
Related article: You may refer to this article How to Write Test Cases in Java Application using Mockito and Junit? and create a sample project.
第 2 步:将 JaCoCo maven 插件添加到您的pom.xml文件中。
JaCoCo 的插件如下:
XML
org.jacoco
jacoco-maven-plugin
0.8.5
prepare-agent
report
test
report
XML
4.0.0
org.example
mockito-demo
1.0-SNAPSHOT
junit
junit
4.8.2
org.mockito
mockito-all
2.0.2-beta
org.jacoco
jacoco-maven-plugin
0.8.5
prepare-agent
report
test
report
11
11
以下是添加 JaCoCo 插件后pom.xml文件的更新代码。
XML
4.0.0
org.example
mockito-demo
1.0-SNAPSHOT
junit
junit
4.8.2
org.mockito
mockito-all
2.0.2-beta
org.jacoco
jacoco-maven-plugin
0.8.5
prepare-agent
report
test
report
11
11
第 3 步:添加依赖项后,单击右上角的Maven选项,如下图所示。然后选择清洁和测试,然后选择运行按钮(绿色三角形)。
现在您可以看到您的测试结果,如下图所示。并且您的代码覆盖率报告已经生成。但是哪里?请参阅步骤 4。
第 4 步:要获得代码覆盖率报告,请导航到目标 > 站点 > jacoco > index.html > 右键单击 > 打开方式 > 浏览器 > 以及您的首选浏览器。所以基本上index.html是你的代码代码覆盖率报告文件。
So you can see your report will be shown like this and the percentage completely depends on how you have written the test cases.
Note: The green color shows that all lines of code have been covered which means you have written the test cases for all the units. If you have encountered the yellow color line then partial code has been covered and if you have encountered with the red color then the code has not been covered.