Выполнение тестов Спока параллельно
Мои тесты E2E выполняются довольно медленно (25 минут), так как они вызывают несколько сервисов и ждут, пока некоторые данные будут заполнены в базе данных. Я хочу запустить его одновременно. Я использую следующее maven-failsafe-plugin
настроить:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${plugin.failsave.version}</version>
<executions>
<execution>
<id>run-integration-tests</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
И мой тест выглядит примерно так (можно предоставить больше информации, если это необходимо):
@Stepwise
@DataJpaTest
@ContextConfiguration(classes = SomeControllerITConfig)
@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)
class SomeControllerIT extends Specification {
// some variables definition
def "test1":
// some test
def "test2":
// some test
// some more tests
}
Я пытался использовать threadCount
собственность вместе с parallel
или же forkCount
но у меня ничего не работает. Также я попытался вызвать следующую зависимость в maven-failsafe-plugin
зависимости:
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.16</version>
</dependency>
Заранее спасибо!
1 ответ
Я закончил со следующей проблемой на GitHub:
https://github.com/spockframework/spock/issues/691
Комментируйте или что-то еще, если вы также заинтересованы в параллельном выполнении теста в Споке.
Короче говоря, я нашел запрос на включение с включением параллельного выполнения, и он даже объединен в одну из ветвей. Однако это еще не слито с мастером. Так что единственный выход, который я вижу на данный момент, - это написать свой собственный BaseSpecRunner
Похоже, команда Spock добавила поддержку параллельного выполнения:
http://spockframework.org/spock/docs/2.0-M4/parallel_execution.html#parallel-execution
требуется Groovy: >3.0.6