allure 2 cucumber JVM 适配器和 Cucumber 2 似乎不兼容
allure 2 cucumber JVM adapter and Cucumber 2 seem to be incompatible
我正在尝试将 Cucumber JVM 2 与 Allure 2 结合使用,但我遇到了麻烦。当我尝试 运行 我的 Maven 项目时 - 出现以下错误:
cucumber.runtime.CucumberException: Couldn't load plugin class:
io.qameta.allure.cucumberjvm.AllureCucumberJvm. It does not implement
cucumber.api.Plugin
我正在尝试使用 CucumberOptions 指定 Allure 插件,如下所示:
@RunWith(Cucumber.class)
@CucumberOptions
(
features="src/test/resources/com/ss/cuketest/features/SomeFeature.feature"
, glue="com/ss/cuketest/steps"
, plugin= {"io.qameta.allure.cucumberjvm.AllureCucumberJvm"}
)
public class SomeRunner {
}
AllureCucumberJvm 声明如下所示:
public class AllureCucumberJvm implements Reporter, Formatter
所以问题是 Allure 的 2 Cucumber JVM 适配器是否与 Cucumber JVM 2 兼容?还是我应该使用其他东西?
PS:在我的 pom 中,我使用以下依赖项:
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-cucumber-jvm</artifactId>
<version>2.0-BETA21</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-spring</artifactId>
<version>2.3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>2.3.1</version>
</dependency>
非常感谢任何帮助。
谢谢
根据 Cucumber 源文件 cucumber.api.Plugin 现在要求任何插件实现以下接口之一:
* <li>{@link cucumber.api.StepDefinitionReporter}</li>
* <li>{@link cucumber.api.SummaryPrinter}</li>
* <li>{@link cucumber.api.formatter.Formatter}</li>
但是 AllureCucumberJvm 实施
gherkin.formatter.Formatter
相反。因此,编写一个实现插件接口的 AllureCucumberJvm 的简单扩展毫无帮助(我的测试 运行 很好)。
我认为这应该由 Allure 团队解决。
你试过这个吗https://github.com/allure-framework/allure-java/tree/master/allure-cucumber2-jvm?
这适用于 cucumber-jvm2
为了详细说明 ,这里是 POM 文件中的必需行:
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-cucumber2-jvm</artifactId>
<version>LATEST</version>
</dependency>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
-Dcucumber.options="--plugin io.qameta.allure.cucumber2jvm.AllureCucumber2Jvm"
</argLine>
我正在尝试将 Cucumber JVM 2 与 Allure 2 结合使用,但我遇到了麻烦。当我尝试 运行 我的 Maven 项目时 - 出现以下错误:
cucumber.runtime.CucumberException: Couldn't load plugin class:
io.qameta.allure.cucumberjvm.AllureCucumberJvm. It does not implement
cucumber.api.Plugin
我正在尝试使用 CucumberOptions 指定 Allure 插件,如下所示:
@RunWith(Cucumber.class)
@CucumberOptions
(
features="src/test/resources/com/ss/cuketest/features/SomeFeature.feature"
, glue="com/ss/cuketest/steps"
, plugin= {"io.qameta.allure.cucumberjvm.AllureCucumberJvm"}
)
public class SomeRunner {
}
AllureCucumberJvm 声明如下所示:
public class AllureCucumberJvm implements Reporter, Formatter
所以问题是 Allure 的 2 Cucumber JVM 适配器是否与 Cucumber JVM 2 兼容?还是我应该使用其他东西?
PS:在我的 pom 中,我使用以下依赖项:
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-cucumber-jvm</artifactId>
<version>2.0-BETA21</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-spring</artifactId>
<version>2.3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-java</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>io.cucumber</groupId>
<artifactId>cucumber-junit</artifactId>
<version>2.3.1</version>
</dependency>
非常感谢任何帮助。 谢谢
根据 Cucumber 源文件 cucumber.api.Plugin 现在要求任何插件实现以下接口之一:
* <li>{@link cucumber.api.StepDefinitionReporter}</li>
* <li>{@link cucumber.api.SummaryPrinter}</li>
* <li>{@link cucumber.api.formatter.Formatter}</li>
但是 AllureCucumberJvm 实施
gherkin.formatter.Formatter
相反。因此,编写一个实现插件接口的 AllureCucumberJvm 的简单扩展毫无帮助(我的测试 运行 很好)。
我认为这应该由 Allure 团队解决。
你试过这个吗https://github.com/allure-framework/allure-java/tree/master/allure-cucumber2-jvm? 这适用于 cucumber-jvm2
为了详细说明
<dependency>
<groupId>io.qameta.allure</groupId>
<artifactId>allure-cucumber2-jvm</artifactId>
<version>LATEST</version>
</dependency>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
<configuration>
<argLine>
-javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
-Dcucumber.options="--plugin io.qameta.allure.cucumber2jvm.AllureCucumber2Jvm"
</argLine>