JUnit5 移除 Allure 默认的 TestExecutionListener (AllureJunitPlatform)

JUnit5 remove Allure default TestExecutionListener (AllureJunitPlatform)

我正在尝试更改 Allure 的报告生成以覆盖失败测试的测试状态。断言失败的测试在最终报告中标记为失败和红色。由于超时而失败的测试 - BROKEN 和黄色。我需要将测试失败的所有原因都写成 FAILED 和红色。我通过创建自定义侦听器来实现它。并面临一个问题,即我的和默认的诱惑听众都在同时工作。作为每个测试的结果,将生成 2 个报告文件。是否有可能禁用默认的 AllureJunitPlatform 侦听器?还是有其他方法可以解决我的问题?

我这样注册我的监听器:

Launcher launcher = LauncherFactory.create();
TestExecutionListener listener = new MyCustomAllureListener();
launcher.registerTestExecutionListeners(listener);

据我所知,在 LauncherFactory.create() 的内部,它正在查找 TestExecutionListener,如下所述: https://github.com/allure-framework/allure-java/issues/63 因此,默认的 Allure 侦听器在 META-INF 中设置为 Allure 依赖项。

是否可以删除(不初始化)它?

有,但还没有合并 我遇到了类似的问题并在 Junit5 中添加了修复程序 https://github.com/junit-team/junit5/issues/2181

合并后,您应该可以添加

junit.platform.execution.listeners.deactivate

属性 在 junit-platform.properties 文件中停用 Allure Listener

你得等5.7,到那个时候,不知道能做什么

这里是诱惑依赖的答案: https://github.com/allure-framework/allure-java/issues/428#issuecomment-594475036

你应该像这样更新依赖关系(对于 gradle): 测试编译('io.qameta.allure:allure-junit5:2.12.1:spi-off')

spi-off

它是一个依赖分类器