【问题标题】:allure 2 cucumber JVM adapter and Cucumber 2 seem to be incompatibleallure 2 cucumber JVM 适配器和 Cucumber 2 似乎不兼容
【发布时间】:2018-02-02 12:10:40
【问题描述】:

我正在尝试将 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>

非常感谢任何帮助。 谢谢。

【问题讨论】:

    标签: maven cucumber-jvm allure


    【解决方案1】:

    根据 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
    

    相反。因此,毫无疑问,为实现 Plugin 接口的 AllureCucumberJvm 编写一个简单的扩展并没有帮助(尽管我的测试运行良好)。

    我认为这应该由 Allure 团队解决。

    【讨论】:

    • 请记住,链接的源代码适用于 cucumber v4。
    【解决方案2】:

    【讨论】:

    • 谢谢 Viktor,我不敢相信我在 Google 上找不到它。
    【解决方案3】:

    详细说明Viktor Sidochenko's answer,这里是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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多