我是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'
}
答案 0 :(得分:0)
基本思路不是手工调用黄瓜cli。这将由您选择的测试框架处理(在您的情况下为junit)。所以摆脱黄瓜的特殊任务。这应由默认的gradle测试任务处理。请在此处查看初始设置:https://github.com/tobi-sh/test-gradle-cucumber。
如果你真的想要从其他单元测试中分离出bdd测试,而不是为bdd测试创建一个自己的配置,并根据需要将它们包含在你的测试文件夹中。