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 の仕様/テストを並行して実行する別の方法はありますか?