在具有
的更新环境中我无法并行运行同一类中的测试,因为看起来sbt将以并行方式运行每个类,而不是同一类中的测试。
例如
如果我跑步
testOnly qa.parallelism。*
通过日志,我了解到TestA.test1和TestB.test1是同时执行的,
但是如果我跑步
testOnly qa.parallelism.TestA
包含两个测试(test1和test2),我知道test2将在test1的末尾执行。
有一种方法可以同时运行单个类的每个测试,还是我应该为每个单个测试创建一个类?
谢谢。
答案 0 :(得分:2)
ParallelTestExecution
文档指出默认的ScalaTest行为是:
...并行运行不同的套件,但是对任一套件进行测试
但是,通过混合使用ParallelTestExecution
特性,可以并行运行同一类中的测试。例如,
import org.scalatest.{FlatSpec, Matchers, ParallelTestExecution}
class HelloSpec extends FlatSpec with Matchers with ParallelTestExecution {
"The Hello object" should "say hello 1" in {
println("1")
Hello.greeting should be ("hello")
}
it should "say hello 2" in {
println("2")
Hello.greeting should be ("hello")
}
it should "say hello 3" in {
println("3")
Hello.greeting should be ("hello")
}
}
在不同的sbt test
执行中输出不同的println顺序。