Spock 规范如下所示:
def mySpec(someData) {
//testStuff
where: someData << someDataList
}
someDataList
是经过测试的记录列表,对于该列表中的每个成员,mySpec
方法按顺序运行。我想要的是列表中的前 k 个成员运行一个线程,后面的 k 个成员在第二个线程中运行,依此类推...理论上,这可以使用 Executors Framework 和 JUnitCore
相对容易地完成。类(因为 Spock 依赖于 JUnit)。
然而问题是如何注入(inject)更小的someDataList
进入有 mySpec
的类(class)方法,因为 Spock 不允许构造函数,并且 JUnitCore 需要类名(具有测试/规范的类)而不是实例。一个丑陋的解决方案是制作 mySpec
的 n 个副本,每个都有一个明显较小的 someDataList
,并且每个都由不同的线程运行;但这是一个非常丑陋的解决方案。
有解决办法吗?或者还有另一种并行运行 Spock 规范/测试的方法吗?
最佳答案
如果您的环境(构建工具、IDE)支持,您可以并行运行规范。目前无法并行运行功能或迭代。
关于java - 如何并行运行 Spock 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19661910/