Maven Cucumber JVM 4.0的Extentreport支持(io.Cucumber)

Maven Cucumber JVM 4.0的Extentreport支持(io.Cucumber),maven,cucumber,cucumber-java,Maven,Cucumber,Cucumber Java,我正在尝试将Cucumber自动化项目从Cucumber(info.cukes)迁移到Cucumber(io.Cucumber) 在此过程中,我在迁移扩展报告时遇到了问题。你能帮我弥补我所缺少的吗 依赖关系: <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <ve

我正在尝试将Cucumber自动化项目从Cucumber(info.cukes)迁移到Cucumber(io.Cucumber)

在此过程中,我在迁移扩展报告时遇到了问题。你能帮我弥补我所缺少的吗

依赖关系:

    <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-java</artifactId>
            <version>4.2.6</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-junit -->
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-junit</artifactId>
            <version>4.2.6</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-core -->
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-core</artifactId>
            <version>4.2.6</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/io.cucumber/cucumber-html -->
        <dependency>
            <groupId>io.cucumber</groupId>
            <artifactId>cucumber-html</artifactId>
            <version>0.2.7</version>
        </dependency>
<dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>2.3.26-incubating</version>
        </dependency>


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

        <!-- https://mvnrepository.com/artifact/com.aventstack/extentreports -->
        <dependency>
            <groupId>com.aventstack</groupId>
            <artifactId>extentreports</artifactId>
            <version>4.0.9</version>
        </dependency>
package CucumberWithAfterStep.AfterStepPOC;
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 = { "testSteps" }, plugin = { "pretty",
                                "html:target/cucumber", "json:target/cucumber.json" , "com.cucumber.listener.ExtentCucumberFormatter:target/cucumber-reports/report.html" },
                                monochrome = true, 
                                tags = {"@WAC003 "}, dryRun = false)

public class MainRunnerTest {

 @AfterClass
 public static void writeExtentReport() {
     Reporter.loadXMLConfig(new File(FileReaderManager.getInstance().getConfigReader().getReportConfigPath()));
    }
 }
错误:

cucumber.api.Plugin 在cucumber.runtime.formatter.PluginFactory.loadClass(PluginFactory.java:176)中 在cucumber.runtime.formatter.PluginFactory.pluginClass(PluginFactory.java:163)中 在cucumber.runtime.formatter.PluginFactory.getPluginClass(PluginFactory.java:220)中 在cucumber.runtime.formatter.PluginFactory.isStepDefinitionReporterName(PluginFactory.java:203)中 在cucumber.runtime.RuntimeOptions$ParsedPluginData.addPluginName(RuntimeOptions.java:386) atcumber.runtime.RuntimeOptions.parse(RuntimeOptions.java:165) atcumber.runtime.RuntimeOptions.(RuntimeOptions.java:108)


在Cumber中实现范围报告有两种方法

1。使用Cucumber JVM 4 adapter for Extent Framework(extentreports-cucumber4-adapter)以下是实现的步骤-

在POM.XML下添加适配器依赖项

报表输出目录-../Project目录/test Output/HtmlReport

2。在POM.XML下添加aventstack依赖项


com.aventstack
扩展端口
3.1.5

在此工作流中,不要将com.aventstack.extentreports.cucumber.adapter.extentcumberAdapter插件添加到运行程序。

我也遇到了同样的问题。您可以使用以下依赖项组合, 黄瓜芯4.2.0 黄瓜java 4.2.0 黄瓜JUnit4.2.0 extentreports-cucumber4-adapter 1.0.7

请注意,vimalselvam开发的Cucumber extntsreport不支持Cucumber版本4。因为Cucumber4使用的是基于事件的报告,而不是格式化程序。 因此,请删除此依赖项。
cucumber extentsreport 3.0.2

对于cucumber 4,请使用此-@Grasshopper,我使用了cucumber 4,并使用了您建议的依赖项,但仍然面临此问题。“cucumber.runtime.CucumberException:无法加载插件类:com.cucumber.listener.ExtentCucumberFormatter”再次查看用法。您需要将com.aventstack.extentreports.cucumber.adapter.extentCumberAdapter添加到插件中。删除您现在拥有的一个。如果您对实现V4.0.0有任何疑问,请参阅我已经在使用该版本的适配器,降级了我的cucumber依赖项以匹配您的,但我仍然收到一条消息“NoClassDefFoundError:gherkin/GherkindAlectProvider。我也在pom.xml中尝试过各种版本的小黄瓜,但我的开发机器有点不稳定——我不得不手动下载并添加库——maven有时下载,有时不下载。我一直在绞尽脑汁试图让任何一种黄瓜报告在我的笔记本电脑(公司笔记本电脑/网络)上工作,即使我可以让它在其他笔记本电脑上工作。我有一个澄清,我们不需要在pom.xml文件中添加这两种东西吗?要么使用扩展适配器,要么使用AventStack,一次一个,而不是同时使用两个。
cucumber.runtime.CucumberException: Couldn't load plugin class: com.cucumber.listener.ExtentCucumberFormatter. It does not implement
<dependency>
    <groupId>com.aventstack</groupId>
    <artifactId>extentreports-cucumber4-adapter</artifactId>
    <version>1.0.6</version>
</dependency>
@RunWith(Cucumber.class)
@CucumberOptions(plugin = {"com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:"})
public class RunCukesTest {
    // ..
} 
<dependency>
    <groupId>com.aventstack</groupId>
    <artifactId>extentreports</artifactId>
    <version>3.1.5</version>
</dependency>