如何并行运行Spock测试?

时间:2013-10-29 15:04:39

标签: java multithreading testing groovy spock

Spock规范如下:

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

someDataList是经过测试的记录列表,对于此列表的每个成员,按顺序运行mySpec方法。我想要的是列表的前k个成员运行一个线程,下面的k个成员在第二个线程中运行等等...理论上这可以通过Executors Framework和JUnitCore相对容易地完成class(因为Spock依赖于JUnit)。

问题是如何将较小的someDataList注入到具有mySpec方法的类中,因为Spock不允许构造函数而JUnitCore需要类名(具有测试/规范的类) )而不是实例。一个丑陋的解决方案是制作mySpec的n个副本,每个副本都有一个明显较小的someDataList,每个副本都由一个不同的线程运行;但这是一个非常难看的解决方案。

有解决方法吗?或者是否有另一种并行运行Spock规范/测试的方法?

1 个答案:

答案 0 :(得分:3)

如果您的环境(构建工具,IDE)支持,您可以并行运行规范。目前无法并行运行功能或迭代。

相关问题