2013-10-29 79 views
2

甲斯波克規格看起來像:如何並行運行Spock測試?

def mySpec(someData) { 
    //testStuff 
    where: someData << someDataList 
} 

someDataList是被測試和用於該列表中的每個成員,所述mySpec方法運行時,順序地記錄的列表。我想要的是,列表中的前k個成員運行線程,以下k個成員在第二個線程中運行,等等......理論上,使用Executors Framework和JUnitCore類(因爲Spock依賴於JUnit)。

然而,問題是如何將較小的someDataList注入到具有mySpec方法的類中,因爲Spock不允許構造函數,而JUnitCore想要類名(具有測試/規範的類)而不是實例。一個難看的解決方案是製作mySpec的n個副本,每個副本都有一個明顯較小的someDataList,並且每個都由一個不同的線程運行;但這是一個非常難看的解決方案。

是否有解決方法?還是有另一種並行運行Spock規範/測試的方法?

回答

3

如果您的環境(構建工具,IDE)支持,您可以並行運行規格。並行運行功能或迭代目前不可行。

+0

並行運行特徵或迭代目前不可行。 - 未來是否積壓支持? –

+0

存在問題。除非我們擺脫了JUnit執行模式,否則我們仍有待觀察它可以做得多好。 –

+0

有沒有人設法讓Maven並行運行Spock測試?我不能。參考:[Spock郵件列表](https://groups.google.com/forum/#!topic/spockframework/6zNaZXW8dDc) –