Как параллельный бегун запускает файлы объектов? - PullRequest
0 голосов
/ 24 сентября 2018

Я установил следующий код в моем 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 Ответ

0 голосов
/ 24 сентября 2018

В настоящее время единица распараллеливания находится на уровне файла возможностей.Это означает:

  • если у вас есть 1 функция, эффект отсутствует
  • , если у вас есть несколько функций, но одна из них занимает очень много времени, тест будет запущен для этого количествавремя
...