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。

相关推荐
韦禾水39 分钟前
记录一次项目部署到tomcat的异常
java·tomcat
曦月合一1 小时前
树莓派安装jdk、tomcat、vnc、谷歌浏览器开机自启等环境配置
java·tomcat·树莓派
拾贰_C1 小时前
【Agent | openai | Streaming | 】流式输出Streaming
ubuntu·面试·prompt
阿丰资源1 小时前
SpringBoot+Vue实战:打造企业级在线文档管理系统
vue.js·spring boot·后端
Rust研习社1 小时前
使用 Axum 构建高性能异步 Web 服务
开发语言·前端·网络·后端·http·rust
此剑之势丶愈斩愈烈1 小时前
openssl 自建证书
java
面汤放盐1 小时前
何时使用以及何时不应使用微服务:没有银弹
java·运维·云计算
0xDevNull1 小时前
Spring Boot 自动装配:从原理到实践
java·spring boot·后端
IT_陈寒2 小时前
SpringBoot配置加载顺序把我坑惨了
前端·人工智能·后端
Moment2 小时前
面试官:给 llm 传递上下文,有哪几个身份 role ❓❓❓
前端·后端·面试