代码之家  ›  专栏  ›  技术社区  ›  beetstra

在intellij中运行黄瓜测试时出现不兼容的lasschangeerror

  •  13
  • beetstra  · 技术社区  · 8 年前

    当我在intellij中运行黄瓜测试功能时,它所显示的只是一个与堆栈跟踪不兼容的lasschangeerror:

    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

    2 回复  |  直到 8 年前
        1
  •  8
  •   Yilmaz Guleryuz    8 年前

    如中所述 issue #1392

    这是由IDEA的CucumberJVM2SMFormatter引起的。它是 黄瓜2的格式化程序在黄瓜3中遇到了一个突变。

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

        2
  •  8
  •   beetstra    7 年前

    这在最新版本中得到了解决。

    您可以重新创建配置(这样它将自动更新),或者用替换程序参数

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

    插件的旧版本与黄瓜Java版本3和更高版本不兼容。如果坚持使用该版本,则可以更新build.gradle以显式指定版本2:

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