在IntelliJ中运行Cucumber测试时出现了IncompatibleClassChangeError错误

14
当我在IntelliJ中运行cucumber测试特性时,它只显示一个带有堆栈跟踪的"IncompatibleClassChangeError"错误。
Testing started at 12:55 ...
/Library/Java/JavaVirtualMachines/jdk1.8.0_20.jdk/Contents/Home/bin/java ...
Exception in thread "main" java.lang.IncompatibleClassChangeError: Found interface cucumber.api.TestCase, but class was expected
    at org.jetbrains.plugins.cucumber.java.run.CucumberJvm2SMFormatter.handleTestCaseStarted(CucumberJvm2SMFormatter.java:80)
    at org.jetbrains.plugins.cucumber.java.run.CucumberJvm2SMFormatter.access$000(CucumberJvm2SMFormatter.java:17)
    at org.jetbrains.plugins.cucumber.java.run.CucumberJvm2SMFormatter$1.receive(CucumberJvm2SMFormatter.java:32)
    at org.jetbrains.plugins.cucumber.java.run.CucumberJvm2SMFormatter$1.receive(CucumberJvm2SMFormatter.java:30)
    at cucumber.runner.EventBus.send(EventBus.java:28)
    at cucumber.runner.TestCase.run(TestCase.java:37)
    at cucumber.runner.Runner.runPickle(Runner.java:44)
    at cucumber.runtime.Runtime.runFeature(Runtime.java:120)
    at cucumber.runtime.Runtime.run(Runtime.java:106)
    at cucumber.api.cli.Main.run(Main.java:35)
    at cucumber.api.cli.Main.main(Main.java:18)

Process finished with exit code 1
Empty test suite.

这是 IntelliJ IDEA 2018.1.4(Ultimate Edition),Build #IU-181.5087.20,搭配 Cucumber for Java version 181.5087.20


你能具体说明一下IDE版本吗?你有一个样例案例可以检查吗? - Andrey
@Andrey 添加了版本号。 - beetstra
5
谢谢。请跟踪:https://youtrack.jetbrains.com/issue/IDEA-192612。 - Andrey
2个回答

11

问题#1392所解释的:

这是由于IDEA的CucumberJvm2SMFormatter引起的。它是Cucumber2的格式化程序,在Cucumber 3中遇到了破坏性变化。

最简单的解决方法是在运行配置的程序参数中删除--plugin org.jetbrains.plugins.cucumber.java.run.CucumberJvm2SMFormatter


1
能否从运行默认值中删除该插件?当我尝试编辑默认的Cucumber Java运行时,“程序参数”字段为空。 - Michał Chilczuk

8

这个问题已经在最新版本中解决了。

你可以重新创建配置文件(这样它就会自动更新),或者你可以用以下程序参数替换它:

--plugin org.jetbrains.plugins.cucumber.java.run.CucumberJvm3SMFormatter

插件的旧版本与cucumber java版本3及以上不兼容。如果您仍在使用旧版本,请更新您的build.gradle文件以明确指定版本2:

dependencies {
    ...
    testCompile 'io.cucumber:cucumber-java8:2.+'
}

1
另外,如果包含,则更新: testCompile 'io.cucumber:cucumber-junit:2.+' - JoschJava

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接