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。

相关推荐
kyriewen几秒前
我扒了最近的前端面经——2026年面试不背八股文了,考这5样
前端·面试·ai编程
码事漫谈11 分钟前
告别数据孤岛与AI“水土不服”:金仓多模融合时序库如何让数据真正服务于业务
后端
IT_陈寒19 分钟前
Redis的持久化配置把我坑惨了:你以为数据安全了?
前端·人工智能·后端
星栈28 分钟前
Node 接口该写同步还是异步?
后端·node.js
红烧大青虫1 小时前
HarmonyOS应用开发实战:小事记 - UIAbility 的冷启动/热启动/后台启动三种场景与 launchParam 解析
后端·华为·harmonyos·鸿蒙系统
码事漫谈1 小时前
AI Token 缓存:命中省 10 倍,不命中白扔钱
后端
CRMEB系统商城1 小时前
开源自建还是SaaS订阅?算一笔3年经济账
java·大数据·开发语言·开源
65岁退休Coder1 小时前
LangChain v1.3.4 笔记 - 04 Agent 中间件
后端
keyipatience2 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
神奇小汤圆2 小时前
一个接口多个实现,Spring 怎么"适配多场景"?
后端