You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Extent Reports v5如何合并测试报告?遇JsonFormatter报错求解决

Extent Reports v5 追加测试结果报错问题解决

问题原因

JsonFormatter在Extent Reports v5中已被废弃,它属于v3及更早版本的API,v5内部不再兼容该类的初始化逻辑,强行实例化会触发反射访问权限限制,也就是你遇到的java.lang.reflect.InaccessibleObjectException。

另外v5实现测试结果追加的逻辑和v3完全不同,不需要依赖JsonFormatter来归档、恢复测试域。

正确的追加测试结果实现方案

v5中实现结果追加,只需通过ExtentSparkReporter的配置开启追加模式,结合ExtentReports的状态恢复即可,完全不需要用到JsonFormatter。具体步骤如下:

  1. 配置Spark Reporter开启追加模式
  2. 从已有归档文件加载历史测试数据(可选,首次运行可跳过)
  3. 正常创建测试用例并执行

完整代码示例

// 初始化Spark Reporter
ExtentSparkReporter spark = new ExtentSparkReporter(System.getProperty("user.dir") + "/reporti/TestExtentReport.html");
// 开启追加模式
spark.config().setAppendExisting(true);

// 初始化ExtentReports实例
ExtentReports extent = new ExtentReports();
// 从自动生成的归档文件恢复历史数据(v5默认归档文件为项目根目录下的extent-test.json)
extent.createDomainFromJsonArchive("extent-test.json");

// 关联Reporter
extent.attachReporter(spark);

// 创建测试用例
ExtentTest logger = extent.createTest("Sklepanje");

// 执行测试逻辑...

// 必须调用flush确保结果写入报告
extent.flush();

关键注意事项

  • 彻底删除所有JsonFormatter相关代码,v5已不再支持该类
  • 首次运行时,extent-test.json还未生成,可暂时注释createDomainFromJsonArchive代码,后续运行再添加即可
  • 测试结束后必须调用extent.flush(),否则测试结果不会写入报告

内容的提问来源于stack exchange,提问作者shokerrr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 18:45:05