2016-10-03 7 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から実行した場合でも、私が手:私はこれが起こっている理由として全損でいますので、私は別のあたりとキュウリのEclipseプラグインをインストールしている

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) 

は質問に答えました。不足しているライブラリをインクルードするためにJARファイルを追加しようとすると、問題が見つからないライブラリに移動するように見えます。

私は使用しているライブラリのバージョンと関係している必要がありますが、私はこれを完全に初心者であり、どのように問題を解決するのか経験はありません。

助けを借りていただければ幸いです。

+0

他のクラスでも同様の問題が見つかりました。私はまたあなたのようなパッケージのキュウリの接着剤とランナークラスを持っていました。私はキュウリパッケージの名前を変更しようとしました。それはうまくいきました。 – Grasshopper

+0

maven/antビルドファイル、Junit/TestNG/something_elseテストフレームワーク、testng.xmlをお持ちです。チュートリアルが無料の場合は、そのリンクを共有してください。 – Sid

+0

キュウリパッケージの名前を変更しました。私はこれを驚くほど信じられないほど厄介なものにしています。答える時間を取ってくれたGrasshopperとSidの両方に感謝します。 –

答えて

0

上記のSidのコメントによると、キュウリの名前を変更すると、これが修正されました。

1

私の場合は、glue = "cucumber.steps"をCucumberOptionsリストに追加する必要がありました。

+0

良い最初の答え!ステップ定義を含むパスがクラスパスにない場合は、グルーオプションを使用して追加する必要があります。 stepsがクラスパスから外れたフォルダ(例:claspath = src/main/java、ステップがsrc/main/java/stepsにある場合)にglue = {"classpath:steps"}を追加します – MikeJRamsey56

関連する問題