当前位置: 首页 > 知识库问答 >
问题:

Extentreport 对 Cucumber-JVM 4.0 (io.cucumber) 的支持

温星华
2023-03-14

我正在尝试将我的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.runtime.CucumberException: Couldn't load plugin class: com.cucumber.listener.ExtentCucumberFormatter. It does not implement

cucumber.api.插件在cucumber.runtime.formatter.PluginFactory.load类(PluginFactory.java:176)cucumber.runtime.formatter.PluginFactory.plugin类(PluginFactory.java:163)在cucumber.runtime.formatter.PluginFactory.getPluginclass(PluginFactory.java:220)在cucumber.runtime.Step定义ReporterName(PluginFactory.java:203)在cucumber.runtime.Runtime Options$ParsedPluginData.addPluginName(RuntimeOptions.java:386)在cucumber.runtime.RuntimeOptions.parse(RuntimeOptions.java:165)在cucumber.runtime.Runtime Options。(RuntimeOptions.java:108)

共有2个答案

周博达
2023-03-14

我也有同样的问题。您可以使用以下依赖项组合,Cucumber-core 4 . 2 . 0 Cucumber-Java 4 . 2 . 0 Cucumber-JUnit 4 . 2 . 0 extend reports-Cucumber 4-adapter 1 . 0 . 7

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

云承天
2023-03-14

在cucumber中实施范围报告有两种方法

1.使用Cucumber-JVM4适配器进行扩展框架(extentreports-cucumber4-适配器)

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

<dependency>
    <groupId>com.aventstack</groupId>
    <artifactId>extentreports-cucumber4-adapter</artifactId>
    <version>1.0.6</version>
</dependency>

将com.aventstack.extentreports.cucumber.adapter.Ex的Cucumber适配器插件添加到运行器。

@RunWith(Cucumber.class)
@CucumberOptions(plugin = {"com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:"})
public class RunCukesTest {
    // ..
} 

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

2.在POM下添加aventstack依赖项。可扩展标记语言

<dependency>
    <groupId>com.aventstack</groupId>
    <artifactId>extentreports</artifactId>
    <version>3.1.5</version>
</dependency> 

在此工作流中,不要将com . avent stack . extent reports . cucumber . adapter . extentcuumberadapter插件添加到流道中。

 类似资料:
  • 我正在使用cucumber测试来测试我的Spring启动应用程序,启用了Spring安全。除了当我用cucumber测试一些使用Spring安全的测试时,事情运行得很好。 失败。如果我像简单的jUnit测试那样隐蔽地运行它们,这些测试确实有效,但是当使用cucumber测试步骤运行时失败了。当我用cucumber测试运行同样的测试时,这个问题看起来像是Spring安全测试模拟行为没有被应用。 我的

  • 安装设置 Docusaurus 支持用 TypeScript 编写的主题组件。要开始使用 TypeScript,请在项目中添加 @docusaurus/module-type-aliases 以及一些 @types 依赖项: npm Yarn npm install --save-dev typescript @docusaurus/module-type-aliases @types/react

  • 搜索之后,我发现了两个有趣的答案: > 对 javaFX 的本机映像格式支持 使用javaFX控制gif图像 但是正如我所看到的,javaFX不支持APNG图像。如何使用任何外部库或编写一些代码来解决此问题。我需要一个解决方案... 谢谢你的帮助。

  • Hibernate 也可以被配置为一个 JCA 连接器(JCA connector)。更多信息请参看网站。请注意,Hibernate 对 JCA 的支持,仍处于实验性阶段。

  • 通过测试自动化的页面对象模型,我们将页面链接在一起,如下所示: 这样做的最大好处是,如果开发人员更改主页,使其不再链接到登录页面,我可以更新我的主页类,并在运行测试之前查看所有需要更新的测试(有错误)。 然而,对于小cucumber,上面的每一行将形成一个单独的“步骤”,因此是一个单独的方法。因此,如何才能做到这一点? 将页面对象类的实例(如homePage、loginPage等)放入cross-

  • 我在以前的项目中使用过这个,但现在找不到。。。 我正在使用Maven构建java应用程序,并在构建过程中对该应用程序运行测试。我正在使用maven cucumber reporting插件v3.0.0来编写一份结果报告。 我想: 运行cucumber测试 生成报告(无论测试是否失败) 如果生成报告失败,则在生成报告后使生成失败 我如何使用maven surefire插件、maven cucumbe