java - 使用 testNG Maven 从 info.cukes 更改为 io.cucumber。抛出运行时错误

标签 java maven selenium cucumber testng

我有一个使用 Maven 的 selenium cucumber testng 框架。我希望在使用 testng 运行 cucumber 测试时获得步骤描述。这是一个旧项目,因此我已将依赖项从 info.cukes 更改为最新版本的 io.cucumber。然而,每当我运行运行器测试文件时,它似乎都会抛出错误。

java.lang.NoSuchMethodError: cucumber.runtime.RuntimeOptions.getPluginFormatterNames()Ljava/util/List;

    at cucumber.runtime.formatter.Plugins.createPlugins(Plugins.java:64)
    at cucumber.runtime.formatter.Plugins.<init>(Plugins.java:37)
    at cucumber.api.testng.TestNGCucumberRunner.<init>(TestNGCucumberRunner.java:56)
    at cucumber.api.testng.AbstractTestNGCucumberTests.setUpClass(AbstractTestNGCucumberTests.java:16)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:124)
    at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:59)
    at org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:458)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:222)
    at org.testng.internal.Invoker.invokeConfigurations(Invoker.java:142)
    at org.testng.internal.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:168)
    at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:105)
    at org.testng.TestRunner.privateRun(TestRunner.java:648)
    at org.testng.TestRunner.run(TestRunner.java:505)
    at org.testng.SuiteRunner.runTest(SuiteRunner.java:455)
    at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:450)
    at org.testng.SuiteRunner.privateRun(SuiteRunner.java:415)
    at org.testng.SuiteRunner.run(SuiteRunner.java:364)
    at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
    at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:84)
    at org.testng.TestNG.runSuitesSequentially(TestNG.java:1208)
    at org.testng.TestNG.runSuitesLocally(TestNG.java:1137)
    at org.testng.TestNG.runSuites(TestNG.java:1049)
    at org.testng.TestNG.run(TestNG.java:1017)
    at org.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:72)
    at org.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:123)

我有以下 Maven 依赖项,但不知道它是否是我缺少运行测试的依赖项?任何帮助将不胜感激。当我搜索这个问题时,似乎它主要是通过使我所做的所有 io.cucumber 文件具有相同的版本依赖关系来解决的。

 <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-junit -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>4.2.0</version>
    <scope>test</scope>
</dependency>

 <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-java -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-java</artifactId>
    <version>4.2.0</version>
</dependency>

 <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-testng -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-testng</artifactId>
    <version>4.2.0</version>

</dependency>

        <!-- https://mvnrepository.com/artifact/org.mockito/mockito-core -->
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>2.21.0</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.cucumber/tag-expressions -->
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>tag-expressions</artifactId>
            <version>1.1.1</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-expressions -->
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-expressions</artifactId>
            <version>6.2.0</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/io.cucumber/messages -->
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>messages</artifactId>
            <version>2.1.0</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-java8 -->
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java8</artifactId>
            <version>4.2.0</version>
        </dependency>



        <!-- https://mvnrepository.com/artifact/com.github.mkolisnyk/cucumber-report-generator -->
<dependency>
    <groupId>com.github.mkolisnyk</groupId>
    <artifactId>cucumber-report-generator</artifactId>
    <version>1.3</version>
</dependency>



    <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.14.3</version>
            <scope>test</scope>
        </dependency>  

        <!-- https://mvnrepository.com/artifact/io.cucumber/gherkin -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>gherkin</artifactId>
    <version>6.0.14</version>
</dependency>

        <!-- https://mvnrepository.com/artifact/info.cukes/gherkin -->
<!--<dependency>
    <groupId>info.cukes</groupId>
    <artifactId>gherkin</artifactId>
    <version>2.12.2</version>
    <scope>provided</scope>
</dependency>-->
        <!-- https://mvnrepository.com/artifact/info.cukes/cucumber-core -->
<dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-core</artifactId>
    <version>4.2.0</version>
</dependency>



     <!-- https://mvnrepository.com/artifact/ru.sbtqa.tag/cucumber-runner -->
<dependency>
    <groupId>ru.sbtqa.tag</groupId>
    <artifactId>cucumber-runner</artifactId>
    <version>1.0.7</version>
</dependency>

最佳答案

检查maven pom.xml cucumber-core cucumber-java cucumber-junit

这些文件应该具有相同的版本。在您的示例中,cucumber-java Artifact id 的版本与其他版本不同。

尝试改变它。

关于java - 使用 testNG Maven 从 info.cukes 更改为 io.cucumber。抛出运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53182904/

相关文章:

tomcat - 如何向 'mvn tomcat:run'命令指定Tomcat实例?

spring - 由 : java. lang.ClassNotFoundException : org. apache.camel.model.config.PropertiesDefinition 引起

java - 页面对象模型返回操作而不是对象?

java - 如何正确关闭java ExecutorService

java - 访问 servlet 实例

java - 如何排除 Maven <reporting> 插件中的依赖项?

Python 使用 Selenium : how to get the first string in element

java - 正确使用 GWT RequestFactory ServiceLocator 和 DI

java - 我应该在 Future<?> 上调用 cancel(true) 还是我自己的 FutureTask

java - Eclipse 无法找到 chrome 库