IntelliJでキュウリのテスト機能を実行すると、表示されるのはスタックトレース付きの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
_です
これは最新バージョンで解決されています。
構成を再作成することができるため(自動的に更新されます)、またはプログラムの引数を次のように置き換えることができます。
--plugin org.jetbrains.plugins.cucumber.Java.run.CucumberJvm3SMFormatter
古いバージョンのプラグインは、cucumber Javaバージョン3以降。
dependencies {
...
testCompile 'io.cucumber:cucumber-Java8:2.+'
}
issue#1392 で説明されているように
これは、IDEAのCucumberJvm2SMFormatterが原因です。 Cucumber2のフォーマッタであるため、Cucumber 3で重大な変更が発生します。
最も簡単な回避策は、実行構成のプログラム引数から--plugin org.jetbrains.plugins.cucumber.Java.run.CucumberJvm2SMFormatter
を削除することです。