Cucumber:NoSuchMethodError:Cucumber.runtime.formatter.Plugins
我在IntelliJ上遇到了一个例外,不知道为什么 这是运行程序文件: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
@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>
第二,你们可以说我们并没有指向胶水的正确路径。但是,即使它起作用了,仅仅把它变空也不是解决办法之一。我们将在这里有正确的路径,而不是空字符串 谢谢你。它没有改变。但是我发现了错误并修复了它。看看我的答案。不过你还是应该清理你的进口产品。谢谢你。它没有改变。但是我发现了错误并修复了它。看看我的答案。不过你还是应该清理你的进口品。