我在BDD Framework中使用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
任何人都可以帮助解决此错误并帮助解决此问题。
答案 0 :(得分:4)
您还需要为此格式化程序添加Maven依赖项。请参阅此 - https://github.com/email2vimalraj/CucumberExtentReporter文档。
<dependency>
<groupId>com.vimalselvam</groupId>
<artifactId>cucumber-extentsreport</artifactId>
<version>2.0.5</version>
</dependency>
但我认为这只适用于ExtentReport版本3及更高版本。
答案 1 :(得分:1)
尝试使用不同版本的cucumber-extentsreport。对我来说,最新版本(3.1.1)不起作用,但3.0.2起作用。
答案 2 :(得分:0)
我遇到了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"));
}
}
我希望这会有所帮助。
答案 3 :(得分:0)
要解决此问题。 从运行器类中删除下面的代码“ com.cucumber.listener.ExtentCucumberFormatter:target / report.html”,然后运行运行器类。 它将成功运行。然后将其放回runer类并执行,它将起作用。