【问题标题】:Initializaton error in com.cucumber.listener.ExtentCucumberFormattercom.cucumber.listener.ExtentCucumberFormatter 中的初始化错误
【发布时间】:2017-06-15 07:03:13
【问题描述】:

我正在使用 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 文件中包含以下范围报告的依赖项:

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

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

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

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

【问题讨论】:

  • 寻求帮助以解决此错误
  • 您缺少范围报告的导入语句。请在您的导入部分添加以下行。导入 com.cucumber.listener.Reporter;

标签: selenium cucumber bdd extent


【解决方案1】:

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

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

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

【讨论】:

  • 我尝试添加此依赖并运行脚本,但它显示运行时异常错误:cucumber.runtime.CucumberException: java.lang.NoClassDefFoundError: com/aventstack/extentreports/reporter/ExtentHtmlReporter
  • 它仅适用于 ExtentReport 版本 3 及更高版本。使用最新版本的 ExtentReport... -- 查看插件作者的文章 - vimalselvam.com/cucumber-extent-reporter
【解决方案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"));
        }   
}

我希望这会有所帮助。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

      解决这个问题。 从运行器类中删除以下代码“com.cucumber.listener.ExtentCucumberFormatter:target/report.html”,然后运行运行器类。 它将成功运行。然后把这个放回runer类中执行,就可以了。

      【讨论】:

        猜你喜欢
        • 2014-03-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-05
        • 2015-03-18
        • 2019-08-05
        • 2013-04-12
        • 2018-08-27
        相关资源
        最近更新 更多