pitest-cucumber-plugin
pitest-cucumber-plugin copied to clipboard
NoClassDefFoundError: io/cucumber/junit/Cucumber
Hi, Can you help with the basic flow below? I have the most simple app with cucumber , i get the following stack trace. What am i missing?
I am using: pitest maven - 1.4.5 pitest-Cucumber plugin- 0.8 Cucumber 4.3.1
5:50:16 PM PIT >> INFO : Sending 5 test classes to minion
5:50:16 PM PIT >> INFO : Sent tests to minion
5:50:16 PM PIT >> INFO : MINION : 5:50:16 PM PIT >> FINE : Expecting 5 tests classes from parent
5:50:16 PM PIT >> FINE : Tests classes received
5:50:16 PM PIT >> INFO : Checking environment
5:50:16 PM PIT >> INFO : MINION : 5:50:16 PM PIT >> FINE : Cucumber detected, scenarios will be used
5:50:16 PM PIT >> INFO : MINION : 5:50:16 PM PIT >> FINE : Cucumber detected, scenarios will be used
5:50:16 PM PIT >> FINE : MINION : java.lang.NoClassDefFoundError: io/cucumber/junit/Cucumber
5:50:16 PM PIT >> FINE : MINION : at org.pitest.cucumber.CucumberTestUnitFinder.findTestUnits(CucumberTestUnitFinder.java:38)
5:50:16 PM PIT >> FINE : MINION : at org.pitest.junit.CompoundTestUnitFinder.findTestUnits(CompoundTestUnitFinder.java:20)
at org.pitest.testapi.execute.FindTestUnits.findTestUnits(FindTestUnits.java:57)
5:50:16 PM PIT >> FINE : MINION : at org.pitest.testapi.execute.FindTestUnits.getTestUnits(FindTestUnits.java:40)
at org.pitest.testapi.execute.FindTestUnits.findTestUnitsForAllSuppliedClasses(FindTestUnits.java:29)
at org.pitest.coverage.execute.CoverageMinion.discoverTests(CoverageMin
5:50:16 PM PIT >> FINE : MINION : ion.java:157)
at org.pitest.coverage.execute.CoverageMinion.getTestsFromParent(CoverageMinion.java:138)
at org.pitest.coverage.execute.CoverageMinion.main(CoverageMinion.java:84)
5:50:16 PM PIT >> FINE : MINION : Caused by: java.lang.ClassNotFoundException: io.cucumber.junit.Cucumber
5:50:16 PM PIT >> FINE : MINION : at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
5:50:16 PM PIT >> FINE : MINION :
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 8 more
5:50:16 PM PIT >> INFO : MINION : 5:50:16 PM PIT >> SEVERE : Error calculating coverage. Process will exit.
java.lang.NoClassDefFoundError: io/cucumber/junit/Cucumber
at org.pitest.cucumber.CucumberTestUnitFinder.findTestUnits(CucumberTestUnitFinder.java:38)
at org.pitest.junit.CompoundT
5:50:16 PM PIT >> INFO : MINION : estUnitFinder.findTestUnits(CompoundTestUnitFinder.java:20)
at org.pitest.testapi.execute.FindTestUnits.findTestUnits(FindTestUnits.java:57)
at org.pitest.testapi.execute.FindTestUnits.getTestUnits(FindTestUnits.java:40)
at org.pitest.testapi.execute.Fi
5:50:16 PM PIT >> INFO : MINION : ndTestUnits.findTestUnitsForAllSuppliedClasses(FindTestUnits.java:29)
at org.pitest.coverage.execute.CoverageMinion.discoverTests(CoverageMinion.java:157)
at org.pitest.coverage.execute.CoverageMinion.getTestsFromParent(CoverageMinion.java:138)
at org.p
5:50:16 PM PIT >> INFO : MINION : itest.coverage.execute.CoverageMinion.main(CoverageMinion.java:84)
Caused by: java.lang.ClassNotFoundException: io.cucumber.junit.Cucumber
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:4
5:50:16 PM PIT >> INFO : MINION : 24)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 8 more
Hi aharonmu,
As stated in the readme, the plugin version 0.8 has been tested up against Cucumber 4.2.0
Higher Cucumber version involved many refactorings with packages.
Which annotation are you using on your Cucumber runner & stepDef ?
I assume you are using the new io.* annotations. So, for the moment, try using deprecated annotations instead. It should work as expected.
If you want to use the new annotation, you will have to wait for a new realease or checkout my current PR and install it locally.
Hi @aharonmu, Please try with version 0.9 - it is compatible with Cucumber 5 annotations.
Best regards, Jim