在运行黄瓜任务时在线程主java.lang.NoClassDefFoundError:org / testng / ITestContext中获取cucumberException

时间:2016-08-06 17:58:21

标签: gradle cucumber cucumber-jvm

我是cucumber-jvm的新手。在运行黄瓜任务时,我收到此错误。

: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 个答案:

答案 0 :(得分:0)

基本思路不是手工调用黄瓜cli。这将由您选择的测试框架处理(在您的情况下为junit)。所以摆脱黄瓜的特殊任务。这应由默认的gradle测试任务处理。请在此处查看初始设置:https://github.com/tobi-sh/test-gradle-cucumber

如果你真的想要从其他单元测试中分离出bdd测试,而不是为bdd测试创建一个自己的配置,并根据需要将它们包含在你的测试文件夹中。