cucumber.core.exception.CucumberException:java.lang.NoClassDefFoundError:io/cucumber/core/plugin/JSONFormatter
如果我从testrunner中删除插件密钥,它会工作得很好,但是我需要所有这些插件来生成报告,比如jenkins cucumber报告,我已经附上了控制台消息和所有详细信息,请让我知道如何修复,因为我是初学者 下面是POM文件cucumber.core.exception.CucumberException:java.lang.NoClassDefFoundError:io/cucumber/core/plugin/JSONFormatter,java,eclipse,maven,cucumber,Java,Eclipse,Maven,Cucumber,如果我从testrunner中删除插件密钥,它会工作得很好,但是我需要所有这些插件来生成报告,比如jenkins cucumber报告,我已经附上了控制台消息和所有详细信息,请让我知道如何修复,因为我是初学者 下面是POM文件 <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> &
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.13</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
<!-- https://mvnrepository.com/artifact/info.cukes/cucumber-java -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>6.4.0</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>6.4.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-picocontainer -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-picocontainer</artifactId>
<version>6.4.0</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/io.cucumber/gherkin -->
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>gherkin</artifactId>
<version>14.0.1</version>
</dependency>
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>de.monochromata.cucumber</groupId>
<artifactId>reporting-plugin</artifactId>
<version>4.0.56</version> <!-- this version can be bumped if we also upgrade our Cucumber dependency
versions -->
</dependency>
以及项目结构
下面是来自eclipse的控制台错误消息控制台消息
io.cucumber.core.exception.CucumberException: java.lang.NoClassDefFoundError: io/cucumber/core/plugin/JSONFormatter
at io.cucumber.core.plugin.PluginFactory.newInstance(PluginFactory.java:118)
at io.cucumber.core.plugin.PluginFactory.instantiate(PluginFactory.java:97)
at io.cucumber.core.plugin.PluginFactory.create(PluginFactory.java:62)
at io.cucumber.core.plugin.Plugins.createPlugins(Plugins.java:32)
at io.cucumber.core.plugin.Plugins.<init>(Plugins.java:25)
at io.cucumber.junit.Cucumber.<init>(Cucumber.java:161)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
at org.junit.internal.requests.ClassRequest.createRunner(ClassRequest.java:28)
at org.junit.internal.requests.MemoizingRequest.getRunner(MemoizingRequest.java:19)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:90)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:76)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:49)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:526)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:770)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:464)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
Caused by: java.lang.NoClassDefFoundError: io/cucumber/core/plugin/JSONFormatter
at de.monochromata.cucumber.report.PrettyReports.createJsonEventListener(PrettyReports.java:58)
at de.monochromata.cucumber.report.PrettyReports.<init>(PrettyReports.java:39)
at de.monochromata.cucumber.report.PrettyReports.<init>(PrettyReports.java:35)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
at io.cucumber.core.plugin.PluginFactory.newInstance(PluginFactory.java:114)
... 24 more
Caused by: java.lang.ClassNotFoundException: io.cucumber.core.plugin.JSONFormatter
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 33 more
cucumber.core.exception.CucumberException:java.lang.NoClassDefFoundError:io/cucumber/core/plugin/JSONFormatter
位于io.cumber.core.plugin.PluginFactory.newInstance(PluginFactory.java:118)
位于io.cumber.core.plugin.PluginFactory.instantiate(PluginFactory.java:97)
位于io.cumber.core.plugin.PluginFactory.create(PluginFactory.java:62)
位于io.cumber.core.plugin.Plugins.createPlugins(Plugins.java:32)
位于io.cumber.core.plugin.Plugins.(Plugins.java:25)
在io.cumber.junit.cumber.(cumber.java:161)
位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
位于java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
位于java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
位于org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
位于org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
位于org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
位于org.junit.internal.builders.AllDefaultPossibilityBuilder.runnerForClass(AllDefaultPossibilityBuilder.java:37)
位于org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
位于org.junit.internal.requests.ClassRequest.createRunner(ClassRequest.java:28)
位于org.junit.internal.requests.MemoizingRequest.getRunner(MemoizingRequest.java:19)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:90)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:76)
位于org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:49)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:526)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:770)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:464)
位于org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
原因:java.lang.NoClassDefFoundError:io/cucumber/core/plugin/JSONFormatter
在de.monochrata.cumber.report.PrettyReports.createJsonEventListener(PrettyReports.java:58)
在de.monochrata.cumber.report.PrettyReports.(PrettyReports.java:39)
位于de.monochrata.cumber.report.PrettyReports.(PrettyReports.java:35)
位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
位于java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
位于java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
位于io.cumber.core.plugin.PluginFactory.newInstance(PluginFactory.java:114)
... 还有24个
原因:java.lang.ClassNotFoundException:io.cucumber.core.plugin.JSONFormatter
位于java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
位于java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
位于java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 33多
它在您的代码中说“如果我们同时升级Cucumber依赖项版本,这个版本可能会受到影响”。可能是一个提示。@M.P.Korstanje不,实际上我需要这个依赖项在本地机器中生成一个报告,因为它在Jenkins中运行时会给出结果。我很想弄清楚,这是由于这个插件“`”de.monocarata.cumber.report.PrettyReports:target/prettyrcumber”“``你能告诉我如何在这个testRunner中使用这个插件报告,这样我就可以得到我期望的报告,或者任何其他我可以得到结果的插件,比如Jenkins oneIt在你的代码中说的“如果我们升级Cucumber依赖版本,这个版本可能会被破坏”。可能是一个提示。@M.P.Korstanje不,实际上我需要这个依赖项在本地机器中生成一个报告,因为它在Jenkins中运行时会给出结果。我很想弄清楚,这是由于这个插件“`”de.monocarata.cumber.report.PrettyReports:target/prettyrcumber”“``有人能告诉我如何在这个testRunner中使用这个插件报告,这样我就可以得到我期望的报告,或者任何其他我可以得到像Jenkins one这样的结果的插件吗
io.cucumber.core.exception.CucumberException: java.lang.NoClassDefFoundError: io/cucumber/core/plugin/JSONFormatter
at io.cucumber.core.plugin.PluginFactory.newInstance(PluginFactory.java:118)
at io.cucumber.core.plugin.PluginFactory.instantiate(PluginFactory.java:97)
at io.cucumber.core.plugin.PluginFactory.create(PluginFactory.java:62)
at io.cucumber.core.plugin.Plugins.createPlugins(Plugins.java:32)
at io.cucumber.core.plugin.Plugins.<init>(Plugins.java:25)
at io.cucumber.junit.Cucumber.<init>(Cucumber.java:161)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:37)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:70)
at org.junit.internal.requests.ClassRequest.createRunner(ClassRequest.java:28)
at org.junit.internal.requests.MemoizingRequest.getRunner(MemoizingRequest.java:19)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:90)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:76)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:49)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:526)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:770)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:464)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)
Caused by: java.lang.NoClassDefFoundError: io/cucumber/core/plugin/JSONFormatter
at de.monochromata.cucumber.report.PrettyReports.createJsonEventListener(PrettyReports.java:58)
at de.monochromata.cucumber.report.PrettyReports.<init>(PrettyReports.java:39)
at de.monochromata.cucumber.report.PrettyReports.<init>(PrettyReports.java:35)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
at io.cucumber.core.plugin.PluginFactory.newInstance(PluginFactory.java:114)
... 24 more
Caused by: java.lang.ClassNotFoundException: io.cucumber.core.plugin.JSONFormatter
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:602)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
... 33 more