我对我的测试使用了scala测试,并且前一段时间构建开始失败,有时是因为某些(新的,可能)测试需要比CI允许的限制。使用scala测试记录每个测试(和/或testSuite)的时间
乍一看没有测试应该超过超时(10分钟BTW),并通过CI输出它不容易看到哪些测试正在如此多的时间(或每测试多少时间)
我可以把简单的基于println的语句打印每个测试开始/结束的当前小时,但是我想知道scala测试是否为此提供了一些内置功能?
如果不是,还有其他的scala测试框架/库吗?
编辑:试图包住测试
我prefere从LIB本身的一些本地方法。我试图在一个可以获取描述和记录时间的方法中包装一个specs2测试,但是在我想要运行测试的时候遇到困难。我做了这样的事情:
class SomeSpec {
private def withTimeLog(x: Fragment) = {
println(s"Starting test: ${x.description}(${DateTime.now()})")
//what now?
x.executionResult
println(s"End of test: ${x.description}(${DateTime.now()})")
}
withTimeLog("Feature" should {
"stuff" in {
println(s"test: ${DateTime.now()}")
None.isEmpty must beTrue
}
})
}
和结果:
Starting test: End(2016-07-28T18:11:53.101+01:00)
End of test: End(2016-07-28T18:11:53.191+01:00)
[info] FeatureSpecV2
[info]
test running at 2016-07-28T18:11:54.037+01:00
[info] A test should
[info] + stuff
意义,测试到最后执行,而不是2个打印语句之间。也许Fragment Execution结果不会运行测试。试了几个人。任何想法应该使用哪种方法?
检查目标中的测试报告。 – cchantep
你用什么CI平台?可能詹金斯? –
其实Travis – pedrorijo91