2017-07-18 145 views
0

我想并行执行我的测试的一部分,所以我已经用ParallelTestExecution特性扩展了那些测试类,唯一的问题是它一次运行了太多的测试。据我了解,它运行到2 * number_of_cpu_cores所以在我的情况下2 * 8测试。它的方式太多了,我想限制它最多4个线程。我试过使用SBT concurentRestrictions in Test设置,但它不会改变任何东西(它只影响并发测试类的执行,并不影响一个类中并发测试的数量)。有什么办法可以强制scalaTest并行运行max N测试吗?如果我可以设置每个测试类的最大线程数是最好的,因为一些测试的资源消耗较少,我可以一次运行超过4个。限制scalatest并行执行线程号

回答

0

尝试将此行添加到您的SBT项目设置:

testOptions in Test += Tests.Argument(TestFrameworks.ScalaTest, "-P4") 

http://www.scalatest.org/user_guide/using_the_runner

-P选项可以选择与一些附加(如 “-P10” - no intervening space)来指定线程池中要创建的线程数 。如果没有指定数字(或0),将根据可用处理器的数量决定线程的数量。

+0

不幸的是,当从SBT运行测试时,不支持此参数,它建议使用SBTs并行配置,但显然它不是-P。 –