3

Meine E2E-Tests laufen ziemlich langsam (25 Minuten), da sie eine Reihe von Diensten aufrufen und darauf warten, dass einige Daten in der Datenbank eingetragen werden. Ich möchte es gleichzeitig ausführen. Ich verwende den folgenden maven-failsafe-plugin Setup:Running Spock-Tests parallel

<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> 

Und mein Test sieht etwas wie diese (weitere Informationen können zur Verfügung gestellt werden, wenn es erforderlich ist):

@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 
} 

Ich versuchte threadCount Eigenschaft verwendet wird zusammen mit parallel oder forkCount aber nichts funktioniert für mich. Auch habe ich versucht, die folgende Abhängigkeit in den maven-failsafe-plugin Abhängigkeiten zu erzwingen:

<dependency> 
     <groupId>org.apache.maven.surefire</groupId> 
     <artifactId>surefire-junit47</artifactId> 
     <version>2.16</version> 
</dependency> 

Vielen Dank im Voraus!

Antwort

3

endete ich mit der folgenden Ausgabe auf GitHub up:

https://github.com/spockframework/spock/issues/691

Kommentar oder was auch immer, wenn Sie parallel Testausführung in Spock auch interessiert sind.

Kurz gesagt, ich habe eine Pull-Anfrage mit der Aktivierung der parallelen Ausführung gefunden und es ist sogar in einen der Zweige zusammengeführt. Es ist jedoch noch nicht in Master integriert. Der einzige Ausweg, den ich jetzt sehe, ist, meine eigene benutzerdefinierte BaseSpecRunner

+0

zu schreiben. Von was in diesem PR zu sehen ist, bezieht es sich auf parallele Ausführung von Tests in der gleichen Spec. Die klassenbasierte Parallelisierung sollte so funktionieren, wie sie ist. – jihor

+0

@jihor nur in Gradle –