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

Cucumber 4.7.1中的范围报告不起作用

谷梁涵忍
2023-03-14

当我尝试使用Cucumber最新版本4.7.1(即“io.cucumber”)时,使用范围报告3.0不会生成报告。我尝试了不同版本的范围报告,但仍然正确生成输出。

我尝试了Cucumber和Extent Report之间的不同组合版本,但仍然没有输出。有人可以在这里发光来提高输出。

代码:

/**
 * @Author: PriyadarsiniMuthuvel
 * @Created date: 19-08-2019
 * @Project Description: CucumberGradleProject
 **/


import io.cucumber.junit.CucumberOptions;
import io.cucumber.junit.Cucumber;
import org.junit.AfterClass;
import org.junit.runner.RunWith;
import managers.FileReaderManager;

import java.io.File;

@RunWith(Cucumber.class)
@CucumberOptions(
        features = "src/test/resources/SmokeSuite",
        glue= {"stepDef"},
      //  plugin = { "pretty","html:target/cucumber-reports"},
 //  plugin = { "com.cucumber.listener.ExtentCucumberFormatter:target/cucumber-reports/report.html"},
    // plugin = { "com.vimalselvam.cucumber.listener.ExtentCucumberFormatter:target/cucumber-reports/report.html"},
      plugin = { "com.aventstack.extentreportscucumber.adapter.ExtentCucumberAdapter:target/cucumber-reports/report.html"},
        monochrome = true
)
public class testrunner {

    @AfterClass
    public static void writeExtentReport() {

        Reporter.loadXMLConfig(new File(FileReaderManager.getInstance().getConfigReader().getReportConfigPath()));
        Reporter.setSystemInfo("User Name", System.getProperty("user.name"));
        Reporter.setSystemInfo("Time Zone", System.getProperty("user.timezone"));
        Reporter.setSystemInfo("Machine", System.getProperty ("os.name"));
        Reporter.setSystemInfo("Java Version", System.getProperty ("java.version"));
    }
}

慰问:

oader.java:362NoClassDefFoundError: gherkin/formatter/java.security.ClassLontroller.doClass1(本机方法)java.net.ClassLoader.find(ClassLoader.java:361)java.lang.SecureClassLoader.load(SecureClassLoader.java:424)sun.misc.URLClassLoader.load类(URLClassLauncher.java:335)java.lang.URLClassLoader.access100美元(URLClassLoader.java:73)java.net.URLClassLoader$1.run(URLClassLoader.java:368)java.net.URLClassLoader$1.run(URLClassLjava.lang.)java.lang.AccessCoader.definePrivileged(Native Method)java.lang.URLClassLoader.define类(URLClassLoader.java:763)java.security.ClassLoader.define类(ClassLoader.java:142)java.net.Launcher$AppClassLoader.define类(Loader.java:467)java.net.ClassLoader. loadClass(ClassLoader. java: 357)com. vimalselvam. cucumber. listener. Reporter. getMONtScenario(Reporter. java: 166在cucumber. runtime. java上的utils.提取(Utils. java: 20)。在cucumber. runner上执行(JavaHook定义. java: 65)。在cucumber. runner上的Hook定义匹配. runStep(Hook定义匹配. java: 16)。在cucumber. runner上测试步骤执行步骤(TestStep. java: 65)。在cucumber. runner上的TestStep. run(TestStep. java: 50)。在cucumber. runner上的TestCase. run(TestCase. java: 42)。在io. cucumber. java上的Runner. runPickle(Runner. java: 50)。PickleRunner$NoStepDescritions. run(PickleRunner. java: 146)在io. cucumber. jun上。在io. cucumber. java上的FeatureRunner. runUNICEF(FeatureRun家长跑步者。访问0美元(家长跑步者. java: 58)在org. jent. runners。家长跑步者2美元。评估(家长跑步者. java: 268)在io. cucumber. Junit。Cucumber$RunCucumber。评估(Cucumber. java: 172)在org. jite. interal. runners. statement。RunAfters. java: 27)在org. jite. runners。家长跑步者。运行(家长跑步者. java: 363)在org. jite. runner。JUnitCore. run(JUnitCore. java: 137)在com. intellij. rt。执行力。在com. intellij. rt。java。IdeaTestRunner$Repeater. start Runnerwith Args(IdeaTestRunner.

共有1个答案

闻人飞翼
2023-03-14

Cucumber 4.7.1 v不支持范围报告。因此,我们必须使用范围报告Cucumber适配器。

在Gradle中添加以下内容Cucumber 4.7.1,Extent Report Cucumber Adapter 1.0.7

cucumber的砾石路径4.7.1

compile group: 'com.aventstack', name: 'extentreports-cucumber4-adapter', version: '1.0.7'

除此之外,手动下载jar并将其添加到build.gradle如下。

 compile files("src/test/resources/config/extentreports-cucumber4-adapter.jar")

(我们必须包括这两个版本1.0.7

 类似资料:
  • 我正在从事一个基于Selenium/testng/java/gradle的项目,该项目采用了针对webdriver和extenttest对象的ThreadLocal方法。每当我的测试用例失败时,我都会使用RetryListener再次运行失败的测试用例1次。若它是第二次通过,我的结果仍然在扩展报告中显示为“失败”(注意,所有迭代都记录在html报告中的单个测试节点中)。stackoverflow对

  • 我的应用程序中有几个类似的报告,因此我创建了一个基本结构,在标题中有一个子报告,在页脚中有另一个子报告。 我不知道为什么我找不到解决这个问题的方法,如果有人能帮我...谢谢!

  • 我有一个有多个方法的TestNG测试。范围报告在主类中有效,但当我尝试为其他方法编写日志时,我得到了空指针异常。所有教程都指向在主方法中编写日志,但没有指向其他方法。我已经努力寻找解决方案一个星期了。有人能帮我吗?谢谢 我的代码是这样的 以下内容写在主测试中 我的完整代码在这里

  • 我们在我的项目中使用范围报告。我想访问运行时存储的值。例如,在测试用例的catch块中,我有一行。 在最后一个块中,我试图创建一个函数,如果测试用例失败,我将需要使用日志函数的值并将其存储用于某种目的。 有可能吗?我正在POM框架中使用java和selenium。

  • 问题内容: 为什么结果是 不: 我们不能在范围内使用指针?这是代码,我设置了一个指针,该指针指向范围循环,但是失败了。 问题答案: 该变量设置为指向,而不是slice元素。这段代码设置为指向slice元素: 游乐场的例子

  • 我正在使用Lucene 8.2。Java11中的0。 我试图索引一个值,以便我可以使用范围查询过滤它,例如:。然而,任何变体,甚至,返回都会导致这个最小的示例。一旦我从其中删除使其成为,我就会得到结果。 所以我在想我一定是在索引上犯了一个错误,但是我不知道它可能是什么。 从JavaDoc: 用于快速范围过滤器的索引长字段。如果还需要存储该值,则应添加一个单独的StoredField实例。在搜索时查