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。

相关推荐
kfaino10 小时前
码农的AI翻身(六)你好,我叫 Parameter
后端·aigc
掘金者阿豪10 小时前
把业务数据变成共享仪表盘:Metabase可视化与远程访问实践
前端·后端
猪猪拆迁队11 小时前
虚拟工厂仿真引擎的架构设计:让一条产线可编程、可观测、可干预
后端·ai编程
字节跳动数据库11 小时前
文章分享——相似函数处理方法
人工智能·后端·程序员
云技纵横11 小时前
@Transactional 失效的 7 种场景:第 5 种最难排查
后端
用户67570498850211 小时前
你知道 Go 结构体和结构体指针调用的区别吗?一文带你彻底搞懂!
后端·go
程序员cxuan12 小时前
读懂 Claude Code 架构分析系列,第一篇,开始!
人工智能·后端·架构
用户67570498850212 小时前
面试官问“装饰器模式”,这样回答薪资多要 3000!
后端
tntxia12 小时前
Geo Scene域名修改引起的一些问题
后端
用户2986985301412 小时前
Java 实现 Word 文档加密与权限解除
java·后端