У меня есть 2 файла функций, каждый с 2 сценариями.Я хочу выполнить сценарии из: * [Первая функция], [Вторая функция] - последовательно;* [Третья особенность] - параллельно;
Я использую теги и 2 Test Runners (с threadCount = 1, threadCount = 5), но все сценарии выполняются параллельно (из-за timeline.html).
Сценарии:
@sequential
Feature: First feature
Background:
# some code
@smoke
Scenario: f1, s1
# some code
@regression
Scenario: f1, s2
# some code
@sequential @smoke
Feature: Second feature
Background:
# some code
@smoke
Scenario: f2, s1
# some code
@regression
Scenario: f2, s2
# some code
Feature: Third feature
Background:
# some code
@smoke
Scenario: f3, s1
# some code
@regression
Scenario: f3, s2
# some code
Тестовые прогоны для сценариев, которые должны выполняться последовательно:
@KarateOptions(tags = {"@regression,@smoke", "@sequential,~@ignore"})
public class TestsRunner extends TestSetBase {
@Test
public void AllSequentialTests() {
Results results = Runner.parallel(getClass(), 1, PropertyValues.getReportDir());
generateReport(PropertyValues.getReportDir());
assertTrue(results.getFailCount() == 0, results.getErrorMessages());
}
}
Тестовые прогоны для параллельного выполнения:
@KarateOptions(tags = {"@regression,@smoke", "~@sequential,~@ignore"})
public class TestsRunner2 extends TestSetBase {
@Test
public void AllSequentialTests() {
Results results = Runner.parallel(getClass(), 5, PropertyValues.getReportDir());
generateReport(PropertyValues.getReportDir());
assertTrue(results.getFailCount() == 0, results.getErrorMessages());
}
}
Я работаюtests от maven:
...
<configuration>
<includes>
<include>api/TestsRunner.java</include>
<include>api/TestsRunner2.java</include>
</includes>
</configuration>
...
В настоящее время, когда я выполняю тесты, timeline.html показывает:
| ForkJoinPool-2-Worker1 | ---- [f1, s1]
| ForkJoinPool-2-Worker2 | ---- [f1, s2]
| ForkJoinPool-2-Worker3 | ---- [f2, s1] --- [f3,s2]
| ForkJoinPool-2-Worker4 | ---- [f2, s2]
| ForkJoinPool-2-Worker5 | ---- [f2, s1]
Я попытался добавить @rallel = false, в таком случае s1, s2 будут выполняться последовательно, но f1, f2 все равно будут выполняться параллельно.Я использую KarateDSL v.0.9.3.
У вас есть идеи, как это исправить?