前面的文章我们介绍过 JUnit 5 单元测试框架:
【干货】JUnit5快速指南
利用这个单元测试框架完成单元测试来帮助提高代码质量,但是对于测试结果而言 JUnit 5 提供的测试报告不够美观,所以我们可以使用专门的测试报告框架 Allure 来生成“高大上”的报告展示。
依赖包导入
在 pom.xml 中添加集成 allure与junit5 的依赖包:
代码语言:javascript复制<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-junit5</artifactId>
<version>2.13.2</version>
</dependency>
配置 Maven 相关属性:
代码语言:javascript复制<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
<junit.api.version>5.6.2</junit.api.version>
<junit.jupiter.version>5.6.2</junit.jupiter.version>
<junit.platform.version>1.3.1</junit.platform.version>
<aspectj.version>1.9.5</aspectj.version>
<allure.version>2.13.2</allure.version>
</properties>
配置相关插件信息:
代码语言:javascript复制<!--junit allure maven运行测试用例jar包-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.2</version>
<configuration>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
</argLine>
</configuration>
<dependencies>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>${aspectj.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-maven</artifactId>
<version>2.10.0</version>
<configuration>
<reportVersion>${allure.version}</reportVersion>
<allureDownloadUrl>https://repo.maven.apache.org/maven2/io/qameta/allure/allure-commandline/${allure.version}/allure-commandline-${allure.version}.zip</allureDownloadUrl>
</configuration>
</plugin>
可从github下载对应的示例程序,查看对应的报告判定配置是否正确。
下载地址:https://github.com/allure-examples/allure-junit-example
在项目路径下执行测试,并生成测试对应的测试报告:
代码语言:javascript复制# 执行测试
maven clean test
# 在项目路径下命令,生成测试报告
allure serve
自动打开数据报告:
下面将介绍针对 Spring Boot 项目的单元测试生成对应的测试报告。
资源配置
添加对应的配置文件allure.properties:
代码语言:javascript复制allure.results.directory=target/allure-results
编写测试脚本
示例测试代码:
代码语言:javascript复制import io.qameta.allure.*;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Tag;
import org.junit.jupiter.api.Test;
@Tag("branch-20")
@DisplayName("创建部门")
@Link("https://www.baidu.com")
@Issue("001")
@Severity(SeverityLevel.BLOCKER)
public class Junit5AllureTest {
@Test
@Description("测试用例说明")
public void StepTest1(){
step1();
step2();
}
@Step("这是创建部门第一步")
public void step1(){
System.out.println("步骤1");
}
@Step("这是创建部门第二步")
public void step2(){
System.out.println("步骤2");
}
}
生成测试报告
执行命令:
代码语言:javascript复制maven test
allure generate target/allure-results -o target/allure-report --clean
allure open -h 127.0.0.1 -p 8083 target/allure-report