繁体   English   中英

运行Cucumber Junit测试时出错:IntializationError

[英]Error when running Cucumber Junit test :Intializationerror

我正在尝试进行黄瓜测试,但出现以下异常。 我用了那些罐子和它们的版本

在此处输入图片说明

这是我的项目:

在此处输入图片说明

这是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文件中:

功能:登录操作测试

方案:使用有效凭据成功登录,当用户导航到登录页面并且用户输入用户名和密码,然后显示消息时,登录用户位于主页上

方案:成功注销时,用户从应用程序注销,然后消息显示注销成功

根据这个 ,黄瓜,Java的1.2.5需要小黄瓜-2.12.2,当我提供小黄瓜-4.1.13

所以我从这里下载了2.12.2版,删除了4.1.13版,它对我有用(我对项目进行了清理)。

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

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)

当我遇到错误时, 引用的库 <=我的罐子。 然后,我用黄瓜-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

我希望这有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM