ZTestFramework

final class ZTestFramework extends Framework

=General Test Pieces=

zio.test.ZIOSpecAbstract

Contains test logic and how it should be executed. The most important method is:

runSpec is the most significant method in this class. It:

  • Interacts with the Runtime
  • Builds TestRunner
  • Folds aspects into logic
  • Builds TestExecutor and passes spec to it
  • Returns summary

zio.test.TestExecutor

Capable of executing specs that require an environment R and may fail with an E Recursively traverses tree of specs, executing suites/tests in parallel

zio.test.TestRunner

Encapsulates the logic necessary to run specs that require an environment R and may fail with an error E.

==SBT-specific pieces==

sbt.testing.Task

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.testing.Runner

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

trait Framework
class Object
trait Matchable
class Any

Value members

Concrete methods

override def runner(args: Array[String], remoteArgs: Array[String], testClassLoader: ClassLoader): ZTestRunnerJVM
Definition Classes

Concrete fields

override val name: String