Contains test logic and how it should be executed. The most important method is:
runSpec
is the most significant method in this class. It:
TestExecutor
and passes spec to itCapable of executing specs that require an environment R
and may fail with
an E
Recursively traverses tree of specs, executing suites/tests in
parallel
Encapsulates the logic necessary to run specs that require an environment R
and may fail with an error E
.
SBT needs everything packaged in these to run tests/suites
zio.test.sbt.ZTestTask extends Task
Contains a ZIOSpecAbstract and everything that SBT needs to run/report it.
SBT delegates to Runner
clients for managing/executing test
zio.test.sbt.ZioSpecFingerprint What SBT needs to find your tests. Finds
ZIOSpecAbstract
implementations in your codebase.
zio.test.sbt.ZTestRunnerJVM extends sbt.testing.Runner
Receives all Specs found by the FingerPrint
and merges them into a single
ZTestTask
sbt.testing.Framework We need to implement this for SBT to recognize ZIO-test as a legitimate test framework.
zio.test.sbt.ZTestFramework extends sbt.testing.Framework Defines
ZIOSpecFingerPrint
& ZTestRunner
and passes them to SBT