Я использую scala-тест для своих тестов, и некоторое время назад сборки начали сбой иногда, потому что некоторые (новые, возможно) тесты занимают больше, чем предел, разрешенный CI.Занесение времени для каждого теста (и/или testSuite) с помощью теста scala
На первом взгляде нет теста должны взять больше, чем тайм-аут (10 минут кстати), и на выходе CI это не так легко увидеть, какой тест занимает так много времени (или сколько времени каждый тест занимает)
Я могу поставить простые инструкции на основе println для печати текущего часа в начале/конце каждого теста, но мне было интересно, дает ли scala-тест какую-то встроенную функцию для этого?
Если нет, делает ли какой-либо другой рамочный тест/библиотеку scala?
EDIT: попытался обернуть Тест
Я предпочитаю некоторые нативный метод из самого 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