如何更改 sbt 中测试执行的并发性

How to change concurrency for test execution in sbt

我想控制 sbt 在并行 运行ning 时使用的线程数。一个原因是我的很多测试都在调用 rest api's,这意味着它们大部分时间都在等待,所以如果我将线程数增加到 cpu's 的数量以上,测试应该运行 更快。

我见过很多声称可以做到这一点的配置,即

concurrentRestrictions in Test := Tags.limit(Tags.CPU,16) :: Nil

但似乎没有什么不同。使用 sbt 1.4.3

正确的设置是

concurrentRestrictions in ThisBuild := Tags.limit(Tags.Test, 16 ) :: Nil

CPU标签默认只限制compile。详情请参考这些docs

The tasks that are currently tagged by default are:

compile : Compile, CPU

test : Test

update : Update, Network

publish, publishLocal : Publish, Network