J'utilise le test scala pour mes tests, et il y a quelque temps, les builds ont commencé à échouer parfois parce qu'un test (nouveau, probablement) prend plus de limite autorisée par l'IC.Enregistrement du temps pour chaque test (et/ou testSuite) avec le test scala
A première vue, aucun test devrait prendre plus que le délai d'attente (10 minutes BTW), et par la sortie CI-il pas facile de voir quel test prend tellement de temps (ou combien de temps chaque test prend)
Je peux mettre des instructions println simples pour imprimer l'heure en cours au début ou à la fin de chaque test, mais je me demandais si le test scala fournit une fonctionnalité intégrée pour cela?
Si non, est-ce qu'un autre framework/bibliothèque de test scala existe?
EDIT: essayé d'envelopper le test
Je prefere une méthode native de la lib lui-même. J'essayais d'envelopper un test specs2 dans une méthode qui obtiendrait la description et enregistrer les temps, mais j'ai des difficultés à exécuter le test au moment où je veux. Je l'ai fait quelque chose comme ceci:
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
}
})
}
et le résultat:
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
sens, le test a été exécuté à la fin, et non entre les 2 déclarations d'impression. Peut-être que le résultat de Fragment.execution n'exécute pas le test. J'ai essayé avec plusieurs autres. Toute idée de quelle méthode devrais-je utiliser?
Vérifiez le rapport de test dans la cible. – cchantep
Qu'est-ce que vous utilisez comme plate-forme CI? Probablement Jenkins? –
réellement Travis – pedrorijo91