首页 > 解决方案 > ExtentReports Cucumber 使用 TestNG 报告并行执行

问题描述

我正在通过 SauceLabs 运行一些 Selenium 测试,我的测试框架正在使用 ExtentCucumberAdapter4 插件生成报告。

我在单独的线程上并行运行我的每个 Cucumber 场景,这些线程按预期运行。但是,当 ExtentReports 生成报告时,它会将每个场景作为一个单独的功能运行一个线程,请参见下面的屏幕截图。

在此处输入图像描述

这是我的功能文件

@FeatureOne
Feature: Feature 1
Example Feature 


  Scenario: Attempting to login with invalid user
    Given I am at the login screen
    And I enter invalid user crendtials
    Then I should not be logged in


  Scenario: Logging in with valid user
    Given I am at the login screen
    And I enter valid user credentials 
    Then I should be logged in

和我的测试运行类:

@CucumberOptions(
        features = "features",
        tags = { "@FeatureOne" },
        glue = {"stepdefs"},
        plugin = {
                "com.aventstack.extentreports.cucumber.adapter.ExtentCucumberAdapter:"
        }
)
public class TestNGCucumberRunner {

    private TestNGCucumberRunner testNGCucumberRunner;

    @BeforeClass(alwaysRun = true)
    public void setUpClass() {
        testNGCucumberRunner = new TestNGCucumberRunner(this.getClass());
    }

    @DataProvider(parallel = true)
    public Object[][] scenarios() {
        return testNGCucumberRunner.provideScenarios();
    }

    @Test(description = "Cucumber Scenarios", dataProvider = "scenarios")
    public void feature(PickleEventWrapper pickleEvent, CucumberFeatureWrapper cucumberFeature) throws Throwable {
        testNGCucumberRunner.runScenario(pickleEvent.getPickleEvent());
    }

    @AfterClass(alwaysRun = true)
    public void tearDownClass() {
        testNGCucumberRunner.finish();
    }
}

我希望功能 1 中的两个场景都在报告中的相同“功能 1”标题下,但它们显示为相同功能的 2。

似乎每个正在运行的线程只是将它运行的任何场景添加到功能列表中。ExtentReport 是否支持防止这种情况?

标签: javaseleniumcucumber-javaextentreportsselenium-extent-report

解决方案


推荐阅读