Фитнес с Junit: выполнять сюиты параллельно - PullRequest
0 голосов
/ 30 января 2020

У меня есть два спортивных костюма, которые являются взаимоисключающими, и я хочу использовать их параллельно. Поскольку они вызываются из junit контрольного примера, я написал следующий фрагмент кода:

@Test
public void executeFitnesseSuites() {
    final Class<?>[] classes = { Suite1.class, Suite2.class };
    final Result result = JUnitCore.runClasses(ParallelComputer.classes(), classes);
    System.out.println(result);

}

@RunWith(FitNesseRunner.class)
@FitNesseRunner.Suite("Suite1")
@FitNesseRunner.FitnesseDir(".")
@FitNesseRunner.OutputDir("/tmp/fitnesse/")
public static class Suite1{

}

@RunWith(FitNesseRunner.class)
@FitNesseRunner.Suite("Suite2")
@FitNesseRunner.FitnesseDir(".")
@FitNesseRunner.OutputDir("/tmp/fitnesse/")
public static class Suite2{

}

В более ранней реализации это были два независимых класса, которые выполнялись последовательно. Тем не менее, я вижу подобное время выполнения для вышеупомянутого теста. Означает ли это, что fitnesse не раскручивает два тонких серверных экземпляра и параллельно выполняет эти наборы?

1 Ответ

0 голосов
/ 30 января 2020

К сожалению, сам FitNesse не является поточно-ориентированным, поэтому не следует одновременно запускать два экземпляра Slim Server в одной JVM.

Я не уверен, как jUnit ведет себя, используя подход, который вы используете. Создает ли он две параллельные JVM или просто потоки в одной и той же JVM?

Подход, который я использовал в прошлом для запуска двух полностью независимых наборов с jUnit, состоит в том, что два имеют два отдельных класса (как и раньше ) и запускайте их параллельно на отдельных JVM с помощью отказоустойчивого плагина Maven. Отказоустойчивый (и также верный) предлагает свойство forkCount для указания количества используемых процессов (подробнее см. http://maven.apache.org/surefire/maven-failsafe-plugin/examples/fork-options-and-parallel-execution.html). Обратите внимание, , что вам НЕ следует использовать свойство parallel, так как оно находится в пределах одной JVM.

Если вы выполняете тесты параллельно с помощью бегуна FitNesse jUnit, вас также может заинтересовать инструмент, созданный мной для объединения HTML отчетов о таких запусках в один отчет: HtmlReportIndexGenerator . Это часть моей фляги для светильников, но также доступна в виде отдельного docker изображения: hsac / fitnesse-fixtures-Объединить .

...