4

我正在使用 BDD 框架中的 Cucumber 运行脚本,并且正在使用 Extent Reports 插件来创建执行报告。

我创建了如下测试运行器类:

package com.ctl.it.qa;

import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)
@CucumberOptions(features = { "src/test/resources/Feature/ABC.feature" 
},

plugin = {"com.cucumber.listener.ExtentCucumberFormatter:BDDControlCenterTools/target/Reports/cucumber-report.html"}
)
public class RunCukes {

}

我在 POM.xml 文件中包含了 Extent 报告的以下依赖项:

    <dependency>
        <groupId>com.relevantcodes</groupId>
        <artifactId>extentreports</artifactId>
        <version>2.41.2</version>
    </dependency>

我正在使用 Junit 运行脚本,并且对 Junit 也有黄瓜依赖。

但是当我执行上面的运行器类时,它显示了一个初始化错误:cucumber.runtime.CucumberException:无法加载插件类:com.cucumber.listener.ExtentCucumberFormatter

任何人都可以请帮助解决这个错误并帮助解决它。

4

4 回答 4

4

您还需要为此格式化程序添加 Maven 依赖项。参考这个——https://github.com/email2vimalraj/CucumberExtentReporter文档。

<dependency>
    <groupId>com.vimalselvam</groupId>
    <artifactId>cucumber-extentsreport</artifactId>
    <version>2.0.5</version>
</dependency>

但我认为这只适用于 ExtentReport 版本 3 及更高版本。

于 2017-06-15T08:38:02.187 回答
2

我遇到了 com.cucumber.listener.ExtentCucumberFormatter 初始化错误,但经过一些调整。我现在可以生成报告了。

我将这两个添加到我的 POM 文件中。该版本可能很棘手,因为我将 3.1.1 用于 cucumber-extentreport 但它对我不起作用。在尝试了一些 3.0.2 之后。

<dependency>
    <groupId>com.vimalselvam</groupId>
    <artifactId>cucumber-extentsreport</artifactId>
    <version>3.0.2</version>
</dependency>
<dependency>
    <groupId>com.aventstack</groupId>
    <artifactId>extentreports</artifactId>
    <version>3.1.1</version>
</dependency>  

我的跑步者类看起来像这样:

package cucumber;

import java.io.File;
import org.junit.AfterClass;
import org.junit.runner.RunWith;
import com.cucumber.listener.Reporter;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;

@RunWith(Cucumber.class)  
@CucumberOptions(   
        features = {"src/test/resources/features", 
        glue = {"stepDefinitions"}, 
        plugin = {"com.cucumber.listener.ExtentCucumberFormatter:target/cucumber-reports/report.html"},
        monochrome = true
        )

public class CucumberRunner {
        @AfterClass
        public static void writeExtentReport() {
            Reporter.loadXMLConfig(new File("config/report.xml"));
        }   
}

我希望这有帮助。

于 2018-12-07T17:50:18.360 回答
1

尝试使用不同版本的 cucumber-extentsreport。对我来说,最新版本(3.1.1)不起作用,但 3.0.2 起作用了。

于 2018-11-10T12:42:08.337 回答
-1

To resolve this. Remove below code "com.cucumber.listener.ExtentCucumberFormatter:target/report.html" from the runner class and then run the runner class. It will run successfuly. Then put this back into the runer class and execute, it will work.

于 2019-01-14T08:26:02.017 回答