2016-10-03 43 views
0

我正在嘗試使用Eclipse設置一個非常簡單的Cucumber測試環境。我下面的教程,並創建了所需的參考庫項目:Cucumber測試包中的java.lang.NoClassDefFoundError

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 { 

} 

,並創建特徵文件和步驟定義。如果我運行從,功能文件,測試運行正常。但是,如果我從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) 

我已經安裝了黃瓜Eclipse插件按照另一個回答問題,所以我在一個總損失,爲什麼發生這種情況。如果我嘗試添加JAR來包含缺少的庫,我似乎將問題轉移到缺少缺失的庫。

我認爲它必須與我使用的庫的版本有關,但我是一個完全新手,並且沒有如何解決這個問題的經驗。

任何幫助都將不勝感激。

+0

我有一個類似的問題,找不到其他類。我也有像你一樣的包裝黃瓜膠和跑步課。我嘗試重命名黃瓜包,它的工作.. – Grasshopper

+0

分享你的maven/ant構建文件,Junit/TestNG/something_else測試框架,testng.xml,如果你有一個和一個類文件。如果您的教程是免費的,請分享該鏈接。 – Sid

+0

重命名黃瓜包工作。我覺得這既驚人又令人難以置信的煩人。感謝Grasshopper和Sid花時間回答。 –

回答

0

根據上面Sid的評論,重命名黃瓜類修復了這個問題。

1

在我的情況下,我不得不將glue =「cucumber.steps」添加到CucumberOptions列表中。

+0

好的第一個答案!當包含步驟定義的路徑不在類路徑中時,它必須使用glue選項添加。如果steps是類路徑的一個文件夾(例如claspath = src/main/java,並且步驟在src/main/java/steps中),那麼我添加glue = {「classpath:steps」} – MikeJRamsey56

相關問題