【发布时间】:2013-10-29 15:04:39
【问题描述】:
Spock 规范如下所示:
def mySpec(someData) {
//testStuff
where: someData << someDataList
}
someDataList 是一个经过测试的记录列表,对于该列表的每个成员,mySpec 方法按顺序运行。我想要的是列表的前 k 个成员运行一个线程,接下来的 k 个成员在第二个线程中运行等等......理论上这可以通过 Executors Framework 和JUnitCore 类相对容易地完成(因为 Spock 依赖于 JUnit)。
然而问题是如何将较小的 someDataList 注入到具有 mySpec 方法的类中,因为 Spock 不允许构造函数并且 JUnitCore 想要类名(具有测试/规范的类)而不是实例。一个丑陋的解决方案是制作 n 个mySpec 的副本,每个副本都有一个明显更小的someDataList,并且每个副本都由不同的线程运行;但这是一个非常丑陋的解决方案。
有解决办法吗?还是有另一种并行运行 Spock 规范/测试的方法?
【问题讨论】:
标签: java multithreading testing groovy spock