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>