gpt4 book ai didi

java - 线程 "main"java.lang.NoClassDefFoundError : gherkin/formatter/Formatter Cucumber 5. 2.0 中的异常

转载 作者:行者123 更新时间:2023-12-01 14:32:51 25 4
gpt4 key购买 nike

我正在尝试在 Eclipse 中设置我的第一个 Cucumber。我按照教程视频建议的方式在 Features 文件夹中设置了一个基本功能文件,但尝试作为 cucumber 功能执行时,我得到以下信息:

Exception in thread "main" java.lang.NoClassDefFoundError: gherkin/formatter/Formatter
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:151)
at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:821)
at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:719)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:642)
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:600)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at cucumber.runtime.formatter.PluginFactory$1.<init>(PluginFactory.java:53)
at cucumber.runtime.formatter.PluginFactory.<clinit>(PluginFactory.java:52)
at cucumber.runtime.RuntimeOptions.<init>(RuntimeOptions.java:70)
at cucumber.api.cli.Main.run(Main.java:31)
at cucumber.api.cli.Main.main(Main.java:18)
Caused by: java.lang.ClassNotFoundException: gherkin.formatter.Formatter
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:521)
... 14 more

我已按照我正在观看的教程视频中列出的所有步骤进行操作,但没有成功。我安装了以下内容:

Eclipse 2019-12,Java SE 13

我在本地下载并安装了所有的 jar 文件。我已经读到,大量 jar 文件可能会相互干扰,因此可能会发生冲突,因此我将所有 jar 文件更新为最新版本。仍然没有帮助。然后,我一次一个地删除已安装的 jar ,并尝试再次运行,直到我找到最基本的必需品。问题仍然存在。

这是我的设置片段:

Snapshot of my project in Eclipse

我愿意接受其他人可以提供的任何帮助

最佳答案

I downloaded and installed all the jar files locally. I have read that the potential for conflicts can arise with a large number of jar files that could interfere with one another so I updated all my jar files to the latest versions. Still no help. I then eliminated installed jars one at a time and attempted to run again until I got down to the bare necessities. The issue still persists.

如果您关注10 minute tutorial您将获得使用 Maven 依赖管理的介绍。

除了本教程之外,我强烈建议您花时间学习 Maven 或 Gradle 以及 Cucumber。除其他外,这些工具将使您的依赖项管理自动化,这可以让您的生活更加轻松。

例如:

如果您想将 Cucumber 与 JUnit 4 和基于注解的步骤定义一起使用,您可以在 Maven pom.xml 文件中声明这一最小依赖集。

    <properties>
<cucumber.version>5.2.0</cucumber.version>
</properties>

<dependencies>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>${cucumber.version}</version>
<scope>test</scope>
</dependency>

<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>${cucumber.version}</version>
<scope>test</scope>
</dependency>
</dependencies>

通过告诉 Maven 您的依赖项是什么,Maven 可以计算您的传递依赖项,即:您的依赖项的依赖项。

这有很多好处。一个示例是使用 mvn dependency:tree 命令列出所有依赖项。与手动下载 jar 文件并希望您拥有正确的文件相比,这要快得多,也更不容易出错。

$ mvn dependency:tree
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< cucumber:cucumber-java-skeleton >-------------------
[INFO] Building Cucumber-Java Skeleton 0.0.1
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ cucumber-java-skeleton ---
[INFO] cucumber:cucumber-java-skeleton:jar:0.0.1
[INFO] +- io.cucumber:cucumber-java:jar:5.2.0:test
[INFO] | +- io.cucumber:cucumber-core:jar:5.2.0:test
[INFO] | | +- io.cucumber:cucumber-gherkin:jar:5.2.0:test
[INFO] | | +- io.cucumber:cucumber-gherkin-vintage:jar:5.2.0:test
[INFO] | | +- io.cucumber:tag-expressions:jar:2.0.4:test
[INFO] | | +- io.cucumber:cucumber-expressions:jar:8.3.1:test
[INFO] | | +- io.cucumber:datatable:jar:3.3.0:test
[INFO] | | +- io.cucumber:cucumber-plugin:jar:5.2.0:test
[INFO] | | \- io.cucumber:docstring:jar:5.2.0:test
[INFO] | \- org.apiguardian:apiguardian-api:jar:1.1.0:test
[INFO] +- io.cucumber:cucumber-junit:jar:5.2.0:test
[INFO] \- junit:junit:jar:4.13:test
[INFO] \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.781 s
[INFO] Finished at: 2020-02-10T23:00:14+01:00
[INFO] ------------------------------------------------------------------------

关于java - 线程 "main"java.lang.NoClassDefFoundError : gherkin/formatter/Formatter Cucumber 5. 2.0 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60183575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com