首页 > 解决方案 > 重新运行失败的测试junit5黄瓜

问题描述

我正在尝试使用它来实现junit5黄瓜测试的重新运行机制

<dependency>
    <groupId>io.github.artsok</groupId>
    <artifactId>rerunner-jupiter</artifactId>
    <version>2.1.6</version>
    <scope>test</scope>
</dependency>

这是我正在使用的 junit 和 cucumber 版本

junit-jupiter-api版本是5.7.0 cucumber-java版本是6.9.1cucumber-junit-platform-engine版本是6.9.1

但是我在编译时收到此错误

java.lang.NoClassDefFoundError: org/junit/jupiter/api/extension/ScriptEvaluationException
Caused by: java.lang.ClassNotFoundException: org.junit.jupiter.api.extension.ScriptEvaluationException

junit-jupiter-api当我将版本降级5.4.25.7.0与 maven 依赖树冲突时rerunner-jupiter,我开始收到此错误

org.apache.maven.surefire.booter.SurefireBooterForkException: There was an error in the forked process
org/junit/platform/commons/PreconditionViolationException

如果有任何其他方法可以在 junit5 黄瓜测试中实现重新运行,我也愿意利用它

任何帮助表示赞赏

标签: junit5cucumber-java

解决方案


除了依赖冲突。

不幸的是,您尝试做的事情基本上是不可能的。JUnit 5 由三部分组成,JUnit Platform、JUnit Jupiter 和 JUnit Vintage。后两者是 JUnit 平台上的测试引擎实现。Cucumber JUnit 平台引擎也是如此。

扩展了rerunner-jupiterJUnit Jupiter。扩展不是 JUnit 平台的一部分,因此您不能将它们与 Cucumber 一起使用。


推荐阅读