运行Cucumber Junit测试时出错:Intializationerror

时间:2017-05-08 17:51:56

标签: java selenium exception junit cucumber

我试图进行黄瓜测试,但我得到以下异常。我使用那些带有版本的罐子

enter image description here

这是我的项目:

enter image description here

这是testRunner类代码:

    package cucumberTest;

import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)
@CucumberOptions(
        features = "Feature"
        ,glue={"stepDefinition"}
        )

        public class TestRunner {

        }

在logIn.feature文件中:

功能:登录操作测试

场景:使用有效凭据成功登录     鉴于用户在主页上     用户导航到登录页面时     用户输入用户名和密码     然后消息显示登录成功

场景:成功的LogOut     来自应用程序的用户LogOut时     然后消息显示LogOut成功

2 个答案:

答案 0 :(得分:1)

根据this,cucumber-java-1.2.5需要gherkin-2.12.2,而我提供的是小黄瓜-4.1.13

所以我从here下载了版本2.12.2,删除了版本4.1.13,它对我有用(我对项目做了很干净)。

答案 1 :(得分:0)

我是新手,还在学习。我收到了类似的“黄瓜跑腿初始化错误”消息:

java.lang.NoSuchMethodError: cucumber.runtime.RuntimeOptionsFactory.<init>(Ljava/lang/Class;[Ljava/lang/Class;)V
    at cucumber.api.junit.Cucumber.<init>(Cucumber.java:59)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:29)
    at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:21)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
    at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
    at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
    at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:26)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createUnfilteredTest(JUnit4TestLoader.java:87)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.createTest(JUnit4TestLoader.java:73)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestLoader.loadTests(JUnit4TestLoader.java:46)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:522)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:760)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:460)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:206)

Referenced Libraries <=我遇到错误时的罐子。然后,我用黄瓜-junit-1.2.2.jar替换了我的黄瓜-junit-1.1.5.jar,错误消息现在已解决。我现在可以运行黄瓜junit测试。 我从最新的罐子开始,但是它们似乎有问题。然后,我尝试了几种不同的组合。我读了“经验法则”,三个罐(-core,-java和-junit)必须具有相同的版本。只有这样,我才能运行功能文件和junit测试。

我当前的罐子是:

gherkin-2.12.2
cucumber-core-1.2.2
cucumber-java-1.2.2
cucumber-junit-1.2.2
cucumber-html-0.2.3
cucumber-jvm-deps-1.0.3
hamcrest-all-1.3
junit-4.11
selenium-server-standalone-3.13.0

我希望这会有所帮助。