junit5 - 重新运行失败的测试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.1
和
cucumber-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.2
为5.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 黄瓜测试中实现重新运行,我也愿意利用它
任何帮助表示赞赏
解决方案
除了依赖冲突。
不幸的是,您尝试做的事情基本上是不可能的。JUnit 5 由三部分组成,JUnit Platform、JUnit Jupiter 和 JUnit Vintage。后两者是 JUnit 平台上的测试引擎实现。Cucumber JUnit 平台引擎也是如此。
扩展了rerunner-jupiter
JUnit Jupiter。扩展不是 JUnit 平台的一部分,因此您不能将它们与 Cucumber 一起使用。
推荐阅读
- python - 如何在python opengl中进行块碰撞
- javascript - d3.timer 是否在重新运行之前等待回调完成?
- image-processing - 无法理解二次连接组件的伪代码
- java - 将路径附加到 Java 中的 HttpUrlConnection
- c++ - Magick++ 合成算法中的内存泄漏
- sql - 转换为关系代数
- c++ - 当应用于不相关的指针时,std::less 如何比 < 更安全?
- ios - 斯威夫特用户界面 | 文本字段未读取输入的值
- c++ - 像这样初始化 int 向量有什么问题:vector
v1 = {1, 2, 3, 4}? - perl - Perl “do { ... } if ...” 作为表达式