A PHPUnit extension, and the event that does not exist

An extension that needs coverage data, which the event system does not carry.

// the events that exist
TestFinished, TestPassed, TestSuiteFinished,
ApplicationFinished

// what none of them carry: the coverage object.
// coverage is collected by a driver the runner owns
// and written by a report writer the configuration
// names.

// so an extension that wants it has to write its own
// report from the configuration's coverage settings,
// after ApplicationFinished, by reading the
// intermediate format rather than by receiving it.

The event system is about test lifecycle rather than about the runner’s outputs, which is a coherent design and means coverage extensions sit awkwardly beside it. The workaround is stable and it is a workaround, and it is the reason the package is pinned to a major version of the framework.