До каратэ 0.8.0 вы сможете параллельно выполнять тесты на уровне функций (1 функция на каждый поток).
Параллельное выполнение функций,
Здесьпример из документации по каратэ:
@CucumberOptions(tags = {"@smoke"})
public class TestParallel {
@Test
public void testParallel() {
KarateStats stats = CucumberRunner.parallel(getClass(), 5, "target/surefire-reports");
assertTrue("scenarios failed", stats.getFailCount() == 0);
}
}
Используя этот параллельный бегун, вы можете указать желаемое количество потоков (, равное 5 в приведенном выше примере ).
Подробнее о параллельном выполнении здесь -> Параллельное выполнение в каратэ
Группировка объектов:
Вы можете сгруппировать файл объектов, используя tags
например @<tag_name>
,
например:
@smoke
Feature:
Scenario:
* print "Smoke"
аналогично, вы можете добавить этот тег ко всем функциям, которые вы хотите сгруппировать для выполнения.
Теперь какCucumberOptions
в ваших тестах упоминает, какой тег для выполнения каратэ будет запускать все тесты, которые помечены этим именем в параллельно .
Подробнее о тегах: Теги / группировки
Итак, вы можете определить группировку по тегу и параллельное выполнение по потокуs НО Вы не можете определить, какой поток должен запускать какую функцию, IMO это выглядит бессмысленно.
Примечание: Если вы планируете использовать 0.9.0
, вы сможете запуститьпараллельные тесты на уровне сценария (каждая функция будет разбита на сценарии и запущена как 1 сценарий на поток), и вместо CucumberOptions
вам придется использовать KarateOptions
Подробнее об изменениях каратэ 0.9.0: Запланированные амортизации