Выполнение тестов Спока параллельно

Мои тесты 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

Другие вопросы по тегам