TestReporterabstractAbstract lifecycle interface for test output. TestRunner announces the run/suite/test/assertion boundaries through these hooks; a concrete reporter overrides them to render (AnsiTestReporter is the built-in). Elapsed values are microseconds — format them with humanize:.
Hook: an assertion was recorded; receives its TestAssertionResult.
Hook: every suite has finished; receives the suites and the run's wall-clock time.
Hook: suite finished; receives its wall-clock time.
Hook: a test finished; receives its TestResult.
Render an elapsed time (microseconds) in the largest unit that keeps it >= 1: sub-millisecond stays µs; >= 1ms shows ms; >= 1s shows s. One truncated decimal for ms/s, via integer math (float division renders at ugly full precision)."
Hook: an assertion is about to run; receives the assertion's name.
Hook: the run is starting; receives every suite about to run.
Hook: suite is about to run (fires for skipped suites too).
Hook: test is about to run.