运行 个 cucumber 特征文件中的并行场景,一次一个特征文件
Run scenarios in a cucumber feature file in parallel, one feature file at a time
我正在使用 Maven SureFire、TestNG(扩展 AbstractTestNGCucumberTests)和 Cucumber,并且有几个功能文件,每个文件都有几个场景。我希望能够 运行 并行处理功能文件中的每个场景,但一次只能处理一个功能文件。这可能吗?
举个例子:
Feature file 1
Scenario 1a
Scenario 1b
Scenario 1c
Feature file 2
Scenario 2a
Scenario 2b
Feature file 3
Scenario 3a
Scenario 3b
Scenario 3c
Scenario 3d
我希望场景 1a、1b 和 1c 到 运行 在功能文件 1 中并行。完成后 运行 功能 2 等中的场景 2a 和 2b
这是 class 当前 运行 所有功能文件中的所有场景的测试。
@CucumberOptions (
plugin = {
"html:target/cucumber-reports",
"json:target/cucumber.json",
"usage:target/cucumber-usage.json"
},
tags = "not @disabled",
monochrome = true,
features = {
"src/test/resources/features/feature1.feature",
"src/test/resources/features/feature2.feature",
"src/test/resources/features/feature3.feature",
})
public class AllTests extends AbstractTestNGCucumberTests {
@Override
@DataProvider(parallel = true)
public Object[][] scenarios() {
return super.scenarios();
}
}
这是否可能使用配置
谢谢,
斯科特
这仅靠配置是不可能的。我这样说的原因是因为您期望仅在 @DataProvider
内使用多级并行执行策略,这在今天的 TestNG 中是不可能的。您需要利用套件 xml 文件来控制更高级别的并行执行策略,然后可以通过利用 @DataProvider
和 parallel
属性在较低级别进行调整.
完成此操作的最简单方法是执行以下操作:
- 为每个功能文件创建一个 Java class。
- 创建一个包含“n”classes 的套件文件,并将并行策略定义为“none”(这将强制 TestNG 选择每个 classes 和运行 他们按顺序)
- 不要忘记设置所需的数据提供程序线程数(默认值为 10)并在
@DataProvider
中设置属性 parallel = true
我正在使用 Maven SureFire、TestNG(扩展 AbstractTestNGCucumberTests)和 Cucumber,并且有几个功能文件,每个文件都有几个场景。我希望能够 运行 并行处理功能文件中的每个场景,但一次只能处理一个功能文件。这可能吗?
举个例子:
Feature file 1
Scenario 1a
Scenario 1b
Scenario 1c
Feature file 2
Scenario 2a
Scenario 2b
Feature file 3
Scenario 3a
Scenario 3b
Scenario 3c
Scenario 3d
我希望场景 1a、1b 和 1c 到 运行 在功能文件 1 中并行。完成后 运行 功能 2 等中的场景 2a 和 2b
这是 class 当前 运行 所有功能文件中的所有场景的测试。
@CucumberOptions (
plugin = {
"html:target/cucumber-reports",
"json:target/cucumber.json",
"usage:target/cucumber-usage.json"
},
tags = "not @disabled",
monochrome = true,
features = {
"src/test/resources/features/feature1.feature",
"src/test/resources/features/feature2.feature",
"src/test/resources/features/feature3.feature",
})
public class AllTests extends AbstractTestNGCucumberTests {
@Override
@DataProvider(parallel = true)
public Object[][] scenarios() {
return super.scenarios();
}
}
这是否可能使用配置
谢谢, 斯科特
这仅靠配置是不可能的。我这样说的原因是因为您期望仅在 @DataProvider
内使用多级并行执行策略,这在今天的 TestNG 中是不可能的。您需要利用套件 xml 文件来控制更高级别的并行执行策略,然后可以通过利用 @DataProvider
和 parallel
属性在较低级别进行调整.
完成此操作的最简单方法是执行以下操作:
- 为每个功能文件创建一个 Java class。
- 创建一个包含“n”classes 的套件文件,并将并行策略定义为“none”(这将强制 TestNG 选择每个 classes 和运行 他们按顺序)
- 不要忘记设置所需的数据提供程序线程数(默认值为 10)并在
@DataProvider
中设置属性
parallel = true