2016-08-06 37 views
1

Ich bin neu bei Gurke-jvm. Beim Ausführen der Gurkenaufgabe bekomme ich diesen Fehler.Erhalten GurkeException in Thread-Haupt java.lang.NoClassDefFoundError: org/testng/ITestContext beim Ausführen von Gurken Aufgabe

: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 Ich kann nicht finden, warum ich diesen Fehler bekomme. Jede Art von Hilfe wird sehr geschätzt. Danke im Voraus.

build.gradle Datei:

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

Das sieht wirklich seltsam aus. Ich würde versuchen, zwei Dinge: 1. Versuchen Sie herauszufinden, ob es eine Testabhängigkeit um: './gradlew dependencyInsight --dependency testng' 2. Versuchen Sie, eine Testng Abhängigkeit hinzugefügt: ' compile 'info.cukes : Gurken-Test: 1.2.4''? – TobiSH

+0

Ich habe dies nach dem Befehl: '$ ./gradlew dependencyInsight --dependency testng : dependencyInsight Keine Abhängigkeiten Anpassung gegebene Eingabe in der Konfiguration gefunden‚: compile'' Aber nach testng Abhängigkeit hinzufügen, es funktioniert gut. Danke für Ihre Hilfe. –

+0

@TobiSH Obwohl ich nicht sicher bin, warum es Testabhängigkeit benötigt. –

Antwort

0

Die Grundidee ist nicht die Gurke cli manualy zu nennen. Dies wird durch das Test-Framework Ihrer Wahl (junit in Ihrem Fall) gehandhabt. Also die spezielle Aufgabe für Gurken loswerden. Dies soll von der Standard-Testaufgabe erledigt werden. Bitte beachten Sie die ursprüngliche Konfiguration: https://github.com/tobi-sh/test-gradle-cucumber.

Wenn Sie die bdd-Tests wirklich von Ihrem anderen Komponententest trennen möchten, erstellen Sie eine eigene Konfiguration für den bdd-Test und fügen Sie sie bei Bedarf in Ihre Testordner ein.