2

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 规范/测试的方法?

4

1 回答 1

3

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

于 2013-10-29T15:36:19.993 回答