Tests also fail successfully.
This commit is contained in:
parent
5294ea669a
commit
49e9ccae41
2 changed files with 66 additions and 2 deletions
|
@ -106,6 +106,16 @@ object Check:
|
||||||
): F[TestResult] =
|
): F[TestResult] =
|
||||||
Sync[F].delay(isEqualTo(expected))
|
Sync[F].delay(isEqualTo(expected))
|
||||||
|
|
||||||
|
def isEqualToT[F[_]: Sync](
|
||||||
|
expected: A
|
||||||
|
)(
|
||||||
|
using
|
||||||
|
CanEqual[A, A],
|
||||||
|
ClassTag[A],
|
||||||
|
SourcePosition
|
||||||
|
): EitherT[F, TestFailure, Any] =
|
||||||
|
EitherT(Sync[F].delay(isEqualTo(expected)))
|
||||||
|
|
||||||
extension (obtained: Check[Boolean])
|
extension (obtained: Check[Boolean])
|
||||||
|
|
||||||
/** ## Usage
|
/** ## Usage
|
||||||
|
|
|
@ -4,8 +4,7 @@ import cats.effect.IO
|
||||||
import cats.effect.Resource
|
import cats.effect.Resource
|
||||||
import gs.test.v0.api.*
|
import gs.test.v0.api.*
|
||||||
import gs.test.v0.reporting.InMemoryReporter
|
import gs.test.v0.reporting.InMemoryReporter
|
||||||
import gs.test.v0.runtime.engine.TestEngineTests.EngineObservation
|
import gs.test.v0.runtime.engine.TestEngineTests.*
|
||||||
import gs.test.v0.runtime.engine.TestEngineTests.G1
|
|
||||||
import gs.timing.v0.MonotonicProvider.ManualTickProvider
|
import gs.timing.v0.MonotonicProvider.ManualTickProvider
|
||||||
import gs.timing.v0.Timing
|
import gs.timing.v0.Timing
|
||||||
import gs.uuid.v0.UUID
|
import gs.uuid.v0.UUID
|
||||||
|
@ -79,6 +78,50 @@ class TestEngineTests extends IOSuite:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
iotest("should run an engine with a single failing test") {
|
||||||
|
newEngine().use { obs =>
|
||||||
|
val g2 = new G2
|
||||||
|
val group = g2.compile()
|
||||||
|
for
|
||||||
|
suiteExecution <- obs.engine.runSuite(
|
||||||
|
suite = Generators.testSuite(),
|
||||||
|
tests = fs2.Stream.apply(group)
|
||||||
|
)
|
||||||
|
rootSpan <- obs.entryPoint.getSpan(EngineConstants.Tracing.RootSpan)
|
||||||
|
groupSpan <- obs.entryPoint.getSpan(EngineConstants.Tracing.FullGroup)
|
||||||
|
beforeGroupSpan <- obs.entryPoint.getSpan(
|
||||||
|
EngineConstants.Tracing.BeforeGroup
|
||||||
|
)
|
||||||
|
afterGroupSpan <- obs.entryPoint.getSpan(
|
||||||
|
EngineConstants.Tracing.AfterGroup
|
||||||
|
)
|
||||||
|
inGroupSpan <- obs.entryPoint.getSpan(EngineConstants.Tracing.InGroup)
|
||||||
|
fullTestSpan <- obs.entryPoint.getSpan(EngineConstants.Tracing.FullTest)
|
||||||
|
beforeTestSpan <- obs.entryPoint.getSpan(
|
||||||
|
EngineConstants.Tracing.BeforeTest
|
||||||
|
)
|
||||||
|
afterTestSpan <- obs.entryPoint.getSpan(
|
||||||
|
EngineConstants.Tracing.AfterTest
|
||||||
|
)
|
||||||
|
testSpan <- obs.entryPoint.getSpan(EngineConstants.Tracing.TestSpan)
|
||||||
|
results <- obs.reporter.terminateAndGetResults()
|
||||||
|
yield
|
||||||
|
assertEquals(rootSpan.isDefined, true)
|
||||||
|
assertEquals(groupSpan.isDefined, true)
|
||||||
|
assertEquals(beforeGroupSpan.isDefined, true)
|
||||||
|
assertEquals(afterGroupSpan.isDefined, true)
|
||||||
|
assertEquals(inGroupSpan.isDefined, true)
|
||||||
|
assertEquals(fullTestSpan.isDefined, true)
|
||||||
|
assertEquals(beforeTestSpan.isDefined, true)
|
||||||
|
assertEquals(afterTestSpan.isDefined, true)
|
||||||
|
assertEquals(testSpan.isDefined, true)
|
||||||
|
assertEquals(results.size, 1)
|
||||||
|
assertEquals(suiteExecution.seen, 1L)
|
||||||
|
assertEquals(suiteExecution.passed, 0L)
|
||||||
|
assertEquals(suiteExecution.failed, 1L)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private def emptyStream[A]: fs2.Stream[IO, A] =
|
private def emptyStream[A]: fs2.Stream[IO, A] =
|
||||||
fs2.Stream.empty
|
fs2.Stream.empty
|
||||||
|
|
||||||
|
@ -130,4 +173,15 @@ object TestEngineTests:
|
||||||
check(true).isTrueT()
|
check(true).isTrueT()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
end G1
|
||||||
|
|
||||||
|
class G2 extends TestGroup[IO]:
|
||||||
|
override def name: String = "single-failing-test"
|
||||||
|
|
||||||
|
test(pid"engine:g2", "this will fail") {
|
||||||
|
check(1).isEqualToT(2)
|
||||||
|
}
|
||||||
|
|
||||||
|
end G2
|
||||||
|
|
||||||
end TestEngineTests
|
end TestEngineTests
|
||||||
|
|
Loading…
Add table
Reference in a new issue