Spring Boot + JUnit5 + Allure 测试报告完整指南

在使用 Spring Boot 和 JUnit5 做自动化测试时,Allure 是非常方便的可视化测试报告工具。但很多同学会遇到一个问题:生成了报告却打开显示 404 或空白 。本文将手把手教你 从运行测试到正确查看 Allure 报告


1️⃣ 运行测试生成结果

首先,Allure 依赖测试结果生成报告,所以必须先运行测试:

运行全部测试

bash 复制代码
mvn clean test

运行特定测试类

bash 复制代码
mvn test -Dtest=ArticleControllerTest

运行特定测试方法

bash 复制代码
mvn test -Dtest=ArticleControllerTest#testListArticle_Success

测试运行完成后,会在项目目录下生成 target/allure-results,包含 .json.xml.txt 等测试结果文件。


2️⃣ 生成 Allure 报告

生成 HTML 报告的命令如下:

bash 复制代码
mvn allure:report

生成后,你会在:

复制代码
target/allure-report/

看到完整的报告目录,包括:

复制代码
index.html
css/
js/
plugins/
fonts/

⚠️ 注意:

  • target/allure-results原始测试数据,不是 HTML 报告
  • 必须用 target/allure-report/index.html 查看,才是完整 HTML 页面

3️⃣ 为什么直接打开 index.html 会报 404?

很多同学习惯直接在浏览器里双击 index.html 打开,但会遇到 404 或空白问题,原因如下:

① 静态资源路径问题

  • index.html 引用了相对路径的 JS/CSS 文件,例如 ./js/allure.js
  • 直接用 file:// 协议打开时,浏览器会阻止这些本地 JS/CSS 加载

② 浏览器安全限制(CORS)

  • Chrome、Edge 等现代浏览器对本地文件加载有严格限制
  • 结果就是页面无法渲染,显示空白或 404

4️⃣ 正确查看 Allure 报告的方法

方法一:Allure CLI 动态查看(推荐)

bash 复制代码
allure serve target/allure-results
  • 会启动本地临时 HTTP 服务
  • 自动打开浏览器查看报告
  • 每次生成新结果都可直接刷新查看

方法二:Maven + Allure 打开报告

bash 复制代码
mvn allure:report
allure open target/allure-report
  • 也会启动本地服务打开报告
  • 避免直接用 file:// 打开

方法三(不推荐):修改浏览器安全策略

  • 使用 --allow-file-access-from-files 启动 Chrome
  • 可以直接打开文件,但不安全且麻烦

5️⃣ 常用 Allure + Maven 测试命令

功能 命令
运行所有测试 mvn clean test
跳过测试编译只运行测试 mvn surefire:test
显示详细测试输出 mvn test -Dmaven.test.failure.ignore=true
生成覆盖率报告(Jacoco) mvn test jacoco:report
生成 Allure 报告 mvn allure:report
动态查看报告 allure serve target/allure-results

6️⃣ 流程总结

完整流程如下:

text 复制代码
1️⃣ 运行测试 → target/allure-results 生成测试结果
2️⃣ mvn allure:report → target/allure-report 生成 HTML 报告
3️⃣ 用 Allure CLI 或 allure open 启动本地服务查看

⚡ 核心要点:不要直接用浏览器 file:// 打开 index.html,一定要通过 HTTP 协议加载资源,否则会 404。

相关推荐
Predestination王瀞潞2 小时前
3. JVM(Java Virtual Machine,Java 虚拟机):从核心架构到运行机制的全方位剖析
java·jvm·架构
java修仙传2 小时前
用 MySQL 实现可重入锁:事务为什么是核心?
java·mysql
电商API&Tina2 小时前
item_video-获得淘宝商品视频 API||商品API
java·大数据·服务器·数据库·人工智能·python·mysql
Predestination王瀞潞2 小时前
2.2 依赖管理Maven工具->dependency详解:Maven 依赖核心标签完整详解
java·maven
楼田莉子2 小时前
Linux网络:应用层HTTP网络协议
网络·c++·后端·网络协议·学习·http
工作log2 小时前
AI点餐助手架构全流程解析
java·开发语言·微服务·架构
weixin_704266052 小时前
SpringMVC核心注解@RequestMapping详解
java·spring
古城小栈2 小时前
Rust跨平台编译打包 之 三大战役
开发语言·后端·rust
小旭95272 小时前
Spring MVC :从入门到精通(上)
java·后端·spring·mvc·intellij-idea