
Allure 默认按套件、包、错误类型等维度对测试用例进行分组,但可通过正确配置 categories.json 文件实现全局扁平化列表展示,关键在于修正字段名 matchedStatuses 并确保文件位置与格式规范。
allure 默认按套件、包、错误类型等维度对测试用例进行分组,但可通过正确配置 `categories.json` 文件实现全局扁平化列表展示,关键在于修正字段名 `matchedstatuses` 并确保文件位置与格式规范。
Allure 报告默认以层级结构组织测试结果(如按 packages、suites 或失败原因分组),但实际测试管理中常需快速浏览全部用例的执行状态——即一个不带嵌套、不分组的线性列表。要实现类似 官方示意图 中的“Flat Test List”效果,核心方法是通过自定义 categories.json 文件覆盖默认分类逻辑。
✅ 正确做法如下:
- 在 allure-results/ 目录下创建 categories.json 文件(注意:必须位于生成的 allure-results 输出根目录,而非源码或 resources 目录);
- 使用正确的字段名 matchedStatuses(原问题中误写为 mathedStatuses,这是导致配置失效的主因);
- 配置内容应覆盖全部状态,且不设置 traceRegex 或 errorRegex,避免触发自动错误分组:
[
{
"name": "List of all tests",
"matchedStatuses": ["passed", "failed", "broken", "skipped", "unknown"]
}
]
? 提示:"unknown" 状态虽非常见,但在部分异步或中断测试中可能出现,建议显式包含以确保完整性。
-
生成报告时确保 allure-results/ 被正确读取(例如使用 Gradle 命令):
./gradlew clean test allureReport
并确认 allure-results/categories.json 在报告生成前已存在且未被覆盖。
⚠️ 注意事项:
- categories.json 仅影响 Categories 标签页,不会改变 Overview 或 Suites 视图结构;
- 若仍出现按错误消息分组,请检查是否同时存在 categories.json 和 environment.properties 中的冲突配置,或确认未启用 --clean 模式意外清除了该文件;
- Allure 2.20.1+ 版本已稳定支持该配置,无需额外插件或 JVM 参数。
最终效果:打开 Allure 报告 → 切换至 Categories 标签页 → 即可见名为 “List of all tests” 的单一分类,其中包含全部测试用例(按执行时间倒序排列),真正实现无层级、无分组的全局视图。










