Cucumber:NoSuchMethodError:Cucumber.runtime.formatter.Plugins

Cucumber:NoSuchMethodError:Cucumber.runtime.formatter.Plugins,cucumber,cucumber-jvm,cucumber-java,cucumber-junit,Cucumber,Cucumber Jvm,Cucumber Java,Cucumber Junit,我在IntelliJ上遇到了一个例外,不知道为什么 这是运行程序文件: @RunWith(Cucumber.class) @CucumberOptions( features = "src/main/resources/features", glue = {"DemoDefinitions"}, tags = "@tests" ) public class CucumberRunner {} 这是定义文件: import cucu

我在IntelliJ上遇到了一个例外,不知道为什么

这是运行程序文件:

@RunWith(Cucumber.class)
@CucumberOptions(
        features = "src/main/resources/features",
        glue = {"DemoDefinitions"},
        tags = "@tests"
        )
public class CucumberRunner {}
这是定义文件:

import cucumber.api.java.en.Given;

public class DemoDefinitions {

    @Given("Login to Azure Succeeded")
    public void login_to_Azure_Succeeded() {
        // Write code here that turns the phrase above into concrete actions
        throw new cucumber.api.PendingException();
    }
}
这是功能文件:

@tests

Feature: PoC Feature

  Scenario: PoC Operations Scenario
    Given Login to Azure Succeeded
而maven依赖项是:

<dependencies>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-core</artifactId>
        <version>4.4.0</version>
    </dependency>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>4.2.6</version>
    </dependency>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>4.2.6</version>
    </dependency>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
</dependencies>
当我运行execute runner类时,我得到:

java.lang.NoSuchMethodError: cucumber.runtime.formatter.Plugins.Ljava/lang/ClassLoader;Lcucumber/runtime/formatter/PluginFactory;Lcucumber/api/event/EventPublisher;Lio/Cumber/core/options/PluginOptions;五

当我运行功能文件本身时,我得到:

未定义的场景: /C:/Users/talt/IdeaProjects/Poc/src/main/resources/features/Poc。功能:5 PoC操作场景

1场景1未定义1步骤1未定义


您能告诉我问题出在哪里吗?

您正在混合不同版本的黄瓜。请仔细查看版本号

您还包括了更多的依赖项,这些依赖项是严格需要的。仅使用cumberjava和cumberjunit就足够了。cucumber core和junit都是可传递的依赖项

    <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>4.2.6</version>
    <scope>test</scope>
    </dependency>

    <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-picocontainer</artifactId>
    <version>4.2.6</version>
    <scope>test</scope>
    </dependency>
修复依赖项后,请确保重新导入maven项目

<dependencies>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>4.4.0</version>
    </dependency>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>4.4.0</version>
    </dependency>
</dependencies>

你在混合不同版本的黄瓜。请仔细查看版本号

您还包括了更多的依赖项,这些依赖项是严格需要的。仅使用cumberjava和cumberjunit就足够了。cucumber core和junit都是可传递的依赖项

    <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>4.2.6</version>
    <scope>test</scope>
    </dependency>

    <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-picocontainer</artifactId>
    <version>4.2.6</version>
    <scope>test</scope>
    </dependency>
修复依赖项后,请确保重新导入maven项目

<dependencies>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-java</artifactId>
        <version>4.4.0</version>
    </dependency>
    <dependency>
        <groupId>io.cucumber</groupId>
        <artifactId>cucumber-junit</artifactId>
        <version>4.4.0</version>
    </dependency>
</dependencies>

解决方案是将胶水设置为空字符串:

glue = {""}

解决方案是将胶水设置为空字符串:

glue = {""}
我们不会混合使用直接依赖和传递依赖,特别是它们的版本!这样做可能会导致不可预测的结果。下面是一些由于错误使用依赖项而被报告的错误

    <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>4.2.6</version>
    <scope>test</scope>
    </dependency>

    <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-picocontainer</artifactId>
    <version>4.2.6</version>
    <scope>test</scope>
    </dependency>
无法解析导入cumber.api.junit java.lang.NoClassDefFoundError:gherkin/IGherkinDialectProvider 导入cumber.api.DataTable;无法解决 解决方案:您应该添加一组正确的依赖项

    <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>4.2.6</version>
    <scope>test</scope>
    </dependency>

    <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-picocontainer</artifactId>
    <version>4.2.6</version>
    <scope>test</scope>
    </dependency>
第二,你们可以说我们并没有指向胶水的正确路径。但是,即使它起作用了,仅仅把它变空也不是解决办法之一。我们将在这里有正确的路径,而不是空字符串

我们不会混合使用直接依赖和传递依赖,特别是它们的版本!这样做可能会导致不可预测的结果。下面是一些由于错误使用依赖项而被报告的错误

    <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>4.2.6</version>
    <scope>test</scope>
    </dependency>

    <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-picocontainer</artifactId>
    <version>4.2.6</version>
    <scope>test</scope>
    </dependency>
无法解析导入cumber.api.junit java.lang.NoClassDefFoundError:gherkin/IGherkinDialectProvider 导入cumber.api.DataTable;无法解决 解决方案:您应该添加一组正确的依赖项

    <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-junit</artifactId>
    <version>4.2.6</version>
    <scope>test</scope>
    </dependency>

    <dependency>
    <groupId>io.cucumber</groupId>
    <artifactId>cucumber-picocontainer</artifactId>
    <version>4.2.6</version>
    <scope>test</scope>
    </dependency>

第二,你们可以说我们并没有指向胶水的正确路径。但是,即使它起作用了,仅仅把它变空也不是解决办法之一。我们将在这里有正确的路径,而不是空字符串

谢谢你。它没有改变。但是我发现了错误并修复了它。看看我的答案。不过你还是应该清理你的进口产品。谢谢你。它没有改变。但是我发现了错误并修复了它。看看我的答案。不过你还是应该清理你的进口品。