我有scalatest写的可能会长时间运行测试:
test("a long running test") {
failAfter(Span(60, Seconds)) {
// ...
}
}
即使测试的超时期限内完成,其运行时间可以是谁运行测试的人的价值。 如何衡量和scalatest的输出显示此单个特定测试的运行时间?
更新:目前我测量的运行时间与我自己的功能,就像在RV的答案。 我想知道,如果scalatest已经提供了这个功能。
我有scalatest写的可能会长时间运行测试:
test("a long running test") {
failAfter(Span(60, Seconds)) {
// ...
}
}
即使测试的超时期限内完成,其运行时间可以是谁运行测试的人的价值。 如何衡量和scalatest的输出显示此单个特定测试的运行时间?
更新:目前我测量的运行时间与我自己的功能,就像在RV的答案。 我想知道,如果scalatest已经提供了这个功能。
该-oD
选项会给测试的持续时间。 例如,我用我的build.sbt以下。
testOptions in Test += Tests.Argument("-oD")
编辑:
您还可以使用单个运行如下:
> test-only org.acme.RedSuite -- -oD
见http://www.scalatest.org/user_guide/using_scalatest_with_sbt 。
此外,你可以定义为一般时间测量以下功能:
def time[T](str: String)(thunk: => T): T = {
print(str + "... ")
val t1 = System.currentTimeMillis
val x = thunk
val t2 = System.currentTimeMillis
println((t2 - t1) + " msecs")
x
}
并用它在任何地方(不依赖于ScalaTest)
test("a long running test") {
time("test running"){
failAfter(Span(60, Seconds)) {
// ...
}
}
除了RV的回答是:如果你有多重构建testOptions in Test += Tests.Argument("-oD")
不会在build.sbt根级别工作,因为测试是指为src /测试/阶。 你必须把它里面的分项目设置
Project(id = "da_project", base = file("da_project"))
.settings(
testOptions in Test += Tests.Argument("-oDG"),
libraryDependencies ++= Seq(
...
)
)