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