3

我的E2E測試運行非常緩慢(25分鐘),因爲它們調用一堆服務並等待一些數據填充到數據庫中。我想同時運行它。我使用以下maven-failsafe-plugin設置:並行運行Spock測試

<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財產parallelforkCount但沒有什麼適合我的。此外,我試圖強迫在maven-failsafe-plugin依賴以下依賴性:

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

提前感謝!

回答

3

我結束了GitHub上的以下問題:

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

評論或什麼,如果你也有興趣在斯波克並行測試執行。

總之,我發現了一個啓用並行執行的pull請求,它甚至合併到其中一個分支中。然而它並沒有被合併到主人當中。所以我現在看到的唯一出路是編寫我自己的定製BaseSpecRunner

+0

從這個PR中看到的東西,它涉及到在同一個Spec中並行執行測試。基於類的並行應該可以正常工作。 – jihor

+0

@jihor只在Gradle中 –