ear*_*las 15 scala sbt scalatest
鉴于以下测试套件:
class ParallelizeMe extends FunSuite with BeforeAndAfterAll {
override def beforeAll() = println("before")
override def afterAll() = println("after")
test("test 1") {
println("1a")
Thread.sleep(3000)
println("1b")
}
test("test 2") {
println("2a")
Thread.sleep(1000)
println("2b")
}
}
Run Code Online (Sandbox Code Playgroud)
如何并行运行测试(通过sbt)?理想情况下,我希望执行顺序在stdout上生成以下内容:
before
1a
2a
2b
1b
after
Run Code Online (Sandbox Code Playgroud)
Ale*_*ula 23
使用ParallelTestExecution和-P命令行参数Runner使它们并行运行:
import org.scalatest.{ParallelTestExecution, BeforeAndAfterAll, FunSuite}
class ParallelizableSpec extends FunSuite with BeforeAndAfterAll with ParallelTestExecution {
...
}
Run Code Online (Sandbox Code Playgroud)
请注意,-P是必需的.从来源:
如果
-P在命令行中包含,Runner则将a传递Distributor给Suite您指定的s-s.Runner将建立一个线程池来执行任何Suite在交给了SDistributor的put并行方法.
它也将在隔离运行测试,所以before和after将在每个线程中运行.有关ParallelTestExecution和Runner的文档,请参阅更多内容.
在SBT中,要使用该标志,请将其添加到build.sbt:
testOptions in Test += Tests.Argument("-P")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10274 次 |
| 最近记录: |