java - 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 是否支持防止这种情况?
解决方案
推荐阅读
- python-3.x - 如何找到二叉树中同一级别的两个节点之间的水平距离?
- javascript - 未捕获的类型错误:无法读取 null 的属性“长度” - 简单过滤
- vcalendar - 如何设置默认的 v-calendar 可见月份
- python - VScode:为什么控制台/终端上没有显示日志消息?
- java - 使用 JFreeChart 在同一帧上显示多个图表
- laravel - 在运行事件 Laravel 之前向客户端返回响应
- c# - 带有外键列表的附加属性
- typescript - 键入具有任意数量的不同参数的函数
- google-maps-api-3 - AutocompleteService.getPlacePredictions 返回带有公寓编号的 ZERO_RESULTS
- r - taskscheduleR 错误:系统找不到指定的文件