无法在黄瓜jvm中执行功能

时间:2014-09-11 14:30:18

标签: java cucumber language-features gherkin

我非常喜欢使用黄瓜(今天开始)。

看起来很简单,但我遇到了运行基本功能的问题。

Feature: Proof of concept that my framework works

Scenario: My first test

Given this is my first step
When this is my second step
Then this is my final step

我知道没有代码可供测试,但我希望它能够返回这些场景未定义的事实。

我做了一些研究,发现我有一个不必要的.jar文件,我已经删除了。

我仍然有以下问题:

Exception in thread "main" java.lang.NoClassDefFoundError: gherkin/lexer/Encoding

Caused by: java.lang.ClassNotFoundException: gherkin.lexer.Encoding

还有一些来自例外的信息。

我应该提供其他信息吗?

任何帮助将不胜感激

4 个答案:

答案 0 :(得分:4)

在完成The Cucumber for Java书中的第一步章节时,我遇到了同样的问题。

它说要从

下载最新版的Gherkin jar(以及其他版本)

http://repo1.maven.org/maven2/info/cukes/gherkin/

下面是列表,其中,在网页上,每个都是包含jar的目录链接。我的错误是认为最底层版本是最新版本。不是。对于所有其他罐子,最底层的确是最新版本。

当使用最底部的Gherkin jar时,我完全按照你的描述获得CNFX:

Exception in thread "main" java.lang.NoClassDefFoundError: gherkin/lexer/Encoding
Caused by: java.lang.ClassNotFoundException: gherkin.lexer.Encoding

版本号列表,如上面的网页:

2.10.0/
2.11.0/
2.11.1/
2.11.2/
2.11.4/
2.11.5/
2.11.6/
2.11.7/
2.11.8/
2.12.0/
2.12.1/
2.12.2/
2.4.16/
2.4.17/
2.4.18/
2.4.19/
2.4.20/
2.4.21/
2.5.0/
2.5.1/
2.5.2/
2.5.3/
2.5.4/
2.6.0/
2.6.1/
2.6.2/
2.6.3/
2.6.4/
2.6.5/
2.6.6/
2.6.7/
2.6.8/
2.6.9/
2.7.0/
2.7.1/
2.7.2/
2.7.3/
2.7.4/
2.7.5/
2.7.6/
2.7.7/
2.8.0/
2.9.0/
2.9.1/
2.9.2/
2.9.3/

答案 1 :(得分:0)

确保您的CLASSPATH中有黄瓜java库。

答案 2 :(得分:0)

它是一个设置问题,因为它没有找到解释小黄瓜语句所需的黄瓜类。 提供有关您在设置中包含的文件的更多信息。

答案 3 :(得分:0)

使用包管理器下载依赖项,而不是下载单个jar。

使用Maven,将以下依赖项添加到pom.xml:

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>2.3.1</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>2.3.1</version>
    <scope>test</scope>
</dependency>

NB。这是目前的最新版本。

确保对所有Cucumber依赖项使用相同的版本。