zio.test.sbt

package zio.test.sbt

Type members

Classlikes

abstract class BaseTestTask[T](taskDef0: TaskDef, val testClassLoader: ClassLoader, val sendSummary: SendSummary, val args: TestArgs, val spec: ZIOSpecAbstract, val runtime: Runtime[T]) extends Task
final case class ZTestEvent(fullyQualifiedName: String, selector: Selector, status: Status, maybeThrowable: Option[Throwable], duration: Long, fingerprint: Fingerprint) extends Event
Companion:
object
object ZTestEvent
Companion:
class
class ZTestEventHandlerSbt(eventHandler: EventHandler, taskDef: TaskDef, renderer: TestRenderer) extends ZTestEventHandler

Reports test results to SBT, ensuring that the test task fails if any ZIO test instances fail

Reports test results to SBT, ensuring that the test task fails if any ZIO test instances fail

Value parameters:
eventHandler

The underlying handler provided by SBT

taskDef

The test task that we are reporting for

final class ZTestFramework extends Framework

=General Test Pieces=

=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

final class ZTestRunnerJVM(val args: Array[String], val remoteArgs: Array[String], testClassLoader: ClassLoader) extends Runner
final class ZTestTask[T](taskDef: TaskDef, testClassLoader: ClassLoader, sendSummary: SendSummary, testArgs: TestArgs, spec: ZIOSpecAbstract, runtime: Runtime[T]) extends BaseTestTask[T]
Companion:
object
object ZTestTask
Companion:
class

Types

type SendSummary = URIO[Summary, Unit]