java - 如何并行运行 Spock 测试?

标签 java multithreading testing groovy spock

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/

相关文章:

java - 授权 header 中不属于用户的 token 的 HTTP 状态代码

java - SUPER 类应该从它的 SUBCLASS 中获取函数和属性。在Java中有可能吗?

Java 序列化 writeObject 在 undefined variable 的情况下失败

Python 进程由于打开 Paramiko ssh 连接而挂起

testing - 这是面试软件测试员时要问的一个很好的面试问题吗?

java - 如何在android中分离通过蓝牙接收的数据

ios - 在可变数组访问上普遍使用@synchronized 指令的替代方法

java - 除非线程池中的两个asyctask执行完毕后继续处理

php - 扫描项目查看代码覆盖率php

python - 从 Python 2.7 中的父目录导入模块