当前位置: 首页 > 知识库问答 >
问题:

如何并行运行Spock测试?

闻人宇定
2023-03-14

Spock规范如下所示:

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

SomeDataList是一个测试记录列表,对于该列表的每个成员,MySpec方法将按顺序运行。我想要的是,列表的前k个成员运行一个线程,下面的k个成员在第二个线程中运行,等等...理论上,使用Executors框架和JUnitCore类(因为Spock依赖于JUnit),这可以相对容易地完成。

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

对此有变通办法吗?或者有没有另一种并行运行Spock规范/测试的方法?

共有1个答案

卓雅达
2023-03-14

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

 类似资料:
  • 问题内容: 我当前的项目使用NUnit进行单元测试并驱动用Selenium编写的UAT。开发人员通常在VS.Net 2003中使用ReSharper的测试运行器来运行测试,而我们的构建框则通过NAnt启动测试。 我们想并行运行UAT测试,以便我们可以利用Selenium Grid / RC,以便它们能够更快地运行。 是否有人对如何实现这一目标有任何想法?和/或在多个浏览器环境下测试Selenium

  • 这是驱动程序类,它将为每个测试方法创建驱动程序实例。

  • 我在Spring控制器中加载数据库驱动pec.groovymethod.but我不知道如何调用Groovy脚本中的方法。有人能给我建议吗? 带着导游http://docs.groovy-lang.org/latest/html/documentation/guide-integrating.html 我只想访问http://127.0.0.1:8080/spock/test/spock然后运行数据

  • 我想并行运行我的测试,这样可以节省时间,我确实在宁静中找到了一个选项,我们可以批量运行测试,但不能并行运行,而且cucumber并行似乎很有前途,下面的链接是针对maven项目的,运行宁静-cucumber并行测试用例有任何关于宁静/JS和npm的建议吗?

  • 我试图用TestNG并行运行一个示例测试项目。但它是在一个线程中顺序执行的。我漏掉什么了吗? 谢了。

  • 我一直在使用CDIUnit和其他各种形式的CDI/SE解决方案来实现测试(junit),这些测试可以减少模拟,并更多地使用我的应用程序堆栈(我想是集成测试)。 无论如何,我也非常喜欢Spock进行测试,我认为应该抓紧时间从CDI/SE空间和Spock中混合一些东西,以便能够制定能够访问大部分CDI内容的规范。 许多CDI的单元运行程序(CDIUnit、WeldjUnit、deltaspike、为S