在Scalatest中,使用SBT作为构建工具。我正在以sbt"testOnly package.*"的形式运行一个包的所有测试。我想通过sbt构建定义在该包的不同类之间提供一个延迟运行,即不想更改内部类,如何做到这一点?
注意:我已经在使用测试中的并行执行:在我的构建定义中为false,但我也想在不同的测试类执行之间给出一个延迟。
您可以使用测试监听器接口:
testListeners += new TestReportListener {
def startGroup(name: String): Unit = println(s"Start Group $name")
def endGroup(name: String, result: TestResult.Value): Unit =
println(s"End Group $name (succeeded)")
//
def endGroup(name: String, t: Throwable): Unit =
println(s"End Group $name (failed)")
//
def testEvent(event: TestEvent): Unit =
println(s"Test Event: ${event.result}")
}
然后,在组(文件)或单个测试之间,插入一个Thread.sleep
。不是很优雅,但我想它会起作用的。