Lorsque j'exécute une fonctionnalité de test de concombre dans IntelliJ, tout ce qu'il montre est une IncompatibleClassChangeError avec trace de pile:
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.
C'est IntelliJ IDEA 2018.1.4 (Ultimate Edition), Build #IU-181.5087.20
, avec Cucumber for Java version 181.5087.20
Cela est résolu dans la dernière version.
Vous pouvez recréer la configuration (afin qu'elle soit mise à jour automatiquement), ou vous pouvez remplacer les arguments du programme par
--plugin org.jetbrains.plugins.cucumber.Java.run.CucumberJvm3SMFormatter
Une ancienne version du plugin n'était pas compatible avec cucumber Java version 3 et supérieure. Si vous êtes bloqué avec celle-ci, vous pouvez mettre à jour votre build.gradle pour spécifier explicitement la version 2:
dependencies {
...
testCompile 'io.cucumber:cucumber-Java8:2.+'
}
Comme expliqué dans problème # 1392
Cela est dû au CucumberJvm2SMFormatter d'IDEA. Étant le formateur de Cucumber2, il se produit un changement de rupture dans Cucumber 3.
La solution de contournement la plus simple consiste à supprimer --plugin org.jetbrains.plugins.cucumber.Java.run.CucumberJvm2SMFormatter
à partir des arguments du programme dans la configuration d'exécution.