在本文中,我们将向您展示如何使用JaCoCo Maven插件生成Java项目的代码覆盖率报告。
经过测试
- Maven 3.5.3
- JUnit 5.3.1
- jacoco-maven-plugin 0.8.2
注意
JaCoCo是一个积极开发的行覆盖率工具,用于测量要测试的代码行数。
1. JaCoCo Maven插件
1.1在pom.xml
文件中声明以下JaCoCo插件。
pom.xml
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.2</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>
它将在Maven测试阶段运行JaCoCo“报告”目标。
2.单元测试
2.1一个简单的Java代码返回一条消息,并检查一个空字符串。
MessageBuilder.java
package com.mkyong.examples;
public class MessageBuilder {
public String getMessage(String name) {
StringBuilder result = new StringBuilder();
if (name == null || name.trim().length() == 0) {
result.append("Please provide a name!");
} else {
result.append("Hello " + name);
}
return result.toString();
}
}
2.2上等单元测试。
TestMessageBuilder.java
package com.mkyong.examples;
import org.junit.jupiter.api.Test;
import static org