2

Spock の仕様は次のようになります。

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

someDataListテストされるレコードのリストであり、このリストの各メンバーに対してmySpecメソッドが順番に実行されます。私が望むのは、リストの最初の k メンバーがスレッドを実行し、次の k メンバーが 2 番目のスレッドで実行されるということです...理論的には、これは Executors フレームワークとJUnitCoreクラスで比較的簡単に実行できます (Spock が依存しているため) JUnit上)。

ただし、Spock はコンストラクターを許可せず、JUnitCore はインスタンスではなくクラス名 (テスト/仕様を持つクラス) を必要とするため、問題はメソッドsomeDataListを持つクラスに小さく挿入する方法です。mySpec醜い解決策は、 n 個の のコピーを作成しmySpec、それぞれが別個の小さい を持ち、それぞれがsomeDataList別個のスレッドによって実行されるようにすることです。しかし、これは非常に醜い解決策です。

これに対する回避策はありますか? または、Spock の仕様/テストを並行して実行する別の方法はありますか?

4

1 に答える 1

3

環境 (ビルド ツール、IDE) がサポートしている場合は、spec を並行して実行できます。機能またはイテレーションを並行して実行することは、現在不可能です。

于 2013-10-29T15:36:19.993 に答える