parallel runner 运行 特征文件如何
How is the parallel runner running the feature files
我在 java 文件中设置了以下代码:
@CucumberOptions(tags = {"~@ignore"})
public class ExamplesTest {
@BeforeClass
public static void before() {
System.setProperty("karate.env", "dev");
}
@Test
public void testParallel() {
String karateOutputPath = "target/surefire-reports";
KarateStats stats = CucumberRunner.parallel(getClass(), 1, karateOutputPath);
generateReport(karateOutputPath);
assertTrue("there are scenario failures", stats.getFailCount() == 0);
}
public static void generateReport(String karateOutputPath) {
Collection<File> jsonFiles = FileUtils.listFiles(new File(karateOutputPath), new String[] {"json"}, true);
List<String> jsonPaths = new ArrayList(jsonFiles.size());
jsonFiles.forEach(file -> jsonPaths.add(file.getAbsolutePath()));
Configuration config = new Configuration(new File("target"), "demo");
ReportBuilder reportBuilder = new ReportBuilder(jsonPaths, config);
reportBuilder.generateReports();
}
}
如您所见,我已将线程数设置为 1,但即使我增加线程数,我也看不出执行时间有什么不同。
我不是很确定并行 运行 是怎么发生的。
谁能解释一下。
目前并行化的单位是特征文件级别。这意味着:
- 如果您有 1 个功能,则没有效果
- 如果您有多个功能,但其中一个功能需要很长时间,则测试将 运行 持续那么长的时间
我在 java 文件中设置了以下代码:
@CucumberOptions(tags = {"~@ignore"})
public class ExamplesTest {
@BeforeClass
public static void before() {
System.setProperty("karate.env", "dev");
}
@Test
public void testParallel() {
String karateOutputPath = "target/surefire-reports";
KarateStats stats = CucumberRunner.parallel(getClass(), 1, karateOutputPath);
generateReport(karateOutputPath);
assertTrue("there are scenario failures", stats.getFailCount() == 0);
}
public static void generateReport(String karateOutputPath) {
Collection<File> jsonFiles = FileUtils.listFiles(new File(karateOutputPath), new String[] {"json"}, true);
List<String> jsonPaths = new ArrayList(jsonFiles.size());
jsonFiles.forEach(file -> jsonPaths.add(file.getAbsolutePath()));
Configuration config = new Configuration(new File("target"), "demo");
ReportBuilder reportBuilder = new ReportBuilder(jsonPaths, config);
reportBuilder.generateReports();
}
}
如您所见,我已将线程数设置为 1,但即使我增加线程数,我也看不出执行时间有什么不同。
我不是很确定并行 运行 是怎么发生的。
谁能解释一下。
目前并行化的单位是特征文件级别。这意味着:
- 如果您有 1 个功能,则没有效果
- 如果您有多个功能,但其中一个功能需要很长时间,则测试将 运行 持续那么长的时间