2016-08-06 12 views
1

私はcucumber-jvmを初めて使用しています。キュウリのタスクを実行している間、私はこのエラーが発生しています。スレッドの中でcucumberExceptionを取得しています。メインのjava.lang.NoClassDefFoundError:キュウリのタスクを実行中のorg/testng/ITestContext

:cucumberException in thread "main" java.lang.NoClassDefFoundError: org/testng/ITestContext 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:91) at cucumber.runtime.Runtime.<init>(Runtime.java:69) at cucumber.runtime.Runtime.<init>(Runtime.java:65) at cucumber.api.cli.Main.run(Main.java:35) at cucumber.api.cli.Main.main(Main.java:18) Caused by: java.lang.ClassNotFoundException: org.testng.ITestContext at java.net.URLClassLoader.findClass(URLClassLoader.java:381) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) ... 11 more このエラーが発生する理由はわかりません。どのような助けも高く評価されます。前もって感謝します。

build.gradleファイル:

apply plugin: 'java' 
apply plugin: 'eclipse' 

repositories { 
    mavenCentral() 
} 

configurations { 
    cucumberRuntime { 
     extendsFrom testRuntime 
    } 
} 

task cucumber() { 
    dependsOn assemble, compileTestJava 
     doLast { 
      javaexec { 
       main = "cucumber.api.cli.Main" 
       classpath = configurations.cucumberRuntime + sourceSets.main.output  + sourceSets.test.output 
       args = ['--plugin', 'pretty', '--glue', 'com', 'src/test/resources'] 
     } 
    } 
} 

dependencies { 
    compile 'junit:junit:4.11' 
    compile 'info.cukes:cucumber-java:1.2.4' 
    compile 'info.cukes:cucumber-junit:1.2.4' 
    compile 'org.seleniumhq.selenium:selenium-java:2.53.1' 
} 
+1

見た目は本当に変です。 1.「./gradlew dependencyInsight --dependency testng」 2. testngの依存関係を追加してみてください。 'compile 'info.cukes :キュウリ試験:1.2.4? – TobiSH

+0

私はあなたのコマンドを実行した後、これを得た: '$ ./gradlew dependencyInsight --dependency TestNGの :compile'' しかし、TestNGの依存性を追加した後、それが正常に動作します:dependencyInsight 入力与えませ依存関係のマッチングが」構成で見つかりませんでした。ご協力いただきありがとうございます。 –

+0

@TobiSH私は確信が持てませんが、どうしてなぜ依存関係をテストする必要がありますか? –

答えて

0

基本的な考え方は、キュウリのCLIてmanualyを呼び出すことではありません。これはあなたの選択したテストフレームワーク(あなたの場合はjunit)によって処理されます。だから、キュウリの特別な仕事を取り除く。これは、デフォルトの階調テストタスクによって処理されます。ここの初期設定:https://github.com/tobi-sh/test-gradle-cucumberをご覧ください。

実際にbddテストを別の単体テストから分離する場合は、bddテストの独自の構成を作成し、必要に応じてテストフォルダにそれらを組み込むよりも、

関連する問題