Я использую Scalatest/Scalacheck с пользовательскими генераторами. Я заметил, что тесты отмечаются как успешные, даже если некоторые тесты не пройдены. В приведенном ниже примере тест "следует добавить отметку времени обработки" был фальсифицирован. Тем не менее тест СБТ пройден.
+ OK, passed 100 tests.
[info] - should add product info to event
[info] - should not alter rest of event
+ OK, passed 100 tests.
! Falsified after 0 passed tests.
> ARG_0: List("([B@27d10fe1,...)")
> ARG_0_ORIGINAL: List("([B@3c8057ce,...)")
[info] - should add processing timestamp
[info] ScalaTest
[info] Run completed in 4 seconds, 792 milliseconds.
[info] Total number of tests run: 3
[info] Suites: completed 1, aborted 0
[info] Tests: succeeded 3, failed 0, canceled 0, ignored 0, pending 0
[info] All tests passed.
[info] Passed: Total 3, Failed 0, Errors 0, Passed 3
[success] Total time: 8 s, completed Sep 11, 2017 6:54:28 PM
Почему тест не проваливается??
ОБНОВЛЕНИЕ: sbt 0.13, scalatest 3.0.1, scalacheck 1.13.4 и тестовый пример
it should "add processing timestamp" in {
Prop.forAll(sizedGen(TestInputGen.Generate)) { in =>
val out = processor.input(in)
out.forall(o => {
val outTS = o._2.get("timestamps")
(outTS.getModule() == "PrimaryProcessor")
})
}
}.check