IntelliJ
Java
Cucumber
升级到最新的黄瓜版本后,我的测试不再运行。我一直在这里来回走动,并毫无疑问地验证了黄瓜升级后出现问题。
尝试在 IntelliJ 中本地运行黄瓜测试场景时,我得到以下结果:
No tests were found
以及以下警告和错误:
Aug 28, 2019 10:02:00 AM cucumber.api.cli.Main run
WARNING: You are using deprecated Main class. Please use io.cucumber.core.api.cli.Main
Aug 28, 2019 10:02:02 AM cucumber.runtime.Runtime run
SEVERE: Exception while executing pickle
java.util.concurrent.ExecutionException:
java.lang.IncompatibleClassChangeError: Found interface cucumber.api.TestCase, but class was expected
at cucumber.runtime.Runtime.run(Runtime.java:114)
at io.cucumber.core.cli.Main.run(Main.java:43)
at cucumber.api.cli.Main.run(Main.java:28)
at cucumber.api.cli.Main.main(Main.java:15)
仅当我尝试直接/手动运行测试场景时,才会发生这种情况。也就是说,右键单击方案并选择"运行"或"调试"。如果我运行我的 CucumberTest.java 文件它可以工作。
我已经清除了缓存并重新启动,没有变化。我还更改了 CucumberTest 类中的导入:
//import cucumber.api.CucumberOptions;
import io.cucumber.junit.CucumberOptions;
//import cucumber.api.junit.Cucumber;
import io.cucumber.junit.Cucumber;
有什么想法吗?我意识到错误消息意味着从编译时到运行时发生了一些变化,并且似乎是cucumber.api.TestCase从类到接口。但我无法理解它,也找不到这显然发生在哪里。
我在Windows上使用IntelliJ,Java,Cucumber时遇到了类似的问题。JetBrains 有一个错误报告,建议通过在将Shorten command line
选项设置为JAR manifest
的同时运行测试来解决此问题。这对我有用!
https://youtrack.jetbrains.com/issue/IDEA-220676