Cucumber测试包中的java.lang.NoClassDefFoundError

时间:2016-10-03 16:41:27

标签: java eclipse selenium cucumber

我正在尝试使用Eclipse建立一个非常简单的Cucumber测试环境。我正在学习一个教程并使用所需的参考库创建项目:

Referenced Libraries

我创建了CucumberRunner.java文件,其中包含以下内容:

package cucumber;

import org.junit.runner.RunWith;

import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)

@CucumberOptions(
    plugin = { "pretty", "json:target/cucumber.json" },
    features = "src/cucumber"
    )

public class CucumberRunner {

}

还可以创建要素文件和步骤定义。如果我运行from,功能文件,测试运行正常。但是,如果我从CucumberRunner.java运行,我得到:

java.lang.NoClassDefFoundError: org/xmlpull/v1/XmlPullParserException
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.privateGetPublicMethods(Class.java:2902)
    at java.lang.Class.getMethods(Class.java:1615)
    at cucumber.runtime.java.MethodScanner.scan(MethodScanner.java:40)
    at cucumber.runtime.java.JavaBackend.loadGlue(JavaBackend.java:86)
    at cucumber.runtime.Runtime.<init>(Runtime.java:92)
    at cucumber.runtime.Runtime.<init>(Runtime.java:70)
    at cucumber.runtime.Runtime.<init>(Runtime.java:66)
    at cucumber.api.junit.Cucumber.createRuntime(Cucumber.java:80)
    at cucumber.api.junit.Cucumber.<init>(Cucumber.java:59)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

我按照另一个回答的问题安装了Cucumber Eclipse插件,所以我完全不知道为什么会发生这种情况。如果我尝试添加JAR以包含缺少的库,我似乎只是将问题转移到缺少库的区别。

我认为必须使用我正在使用的库的版本,但我是一个完整的新手并且没有如何解决这个问题的经验。

任何帮助都会非常感激。

2 个答案:

答案 0 :(得分:1)

就我而言,我必须将 glue =&#34; cucumber.steps&#34; 添加到CucumberOptions列表中。

答案 1 :(得分:0)

根据Sid上面的评论,重命名黄瓜类修复了这个问题。