infection/abstract-testframework-adapter
Shared abstractions for Infection test framework adapters. Provides the TestFrameworkAdapter and TestFrameworkAdapterFactory interfaces so custom adapters can translate Infection's test execution requests into target framework commands and return collected test locations.
HasSyntaxErrorDetection interface added in 0.5.0) lets one mutation-testing pipeline serve both, rather than maintaining two quality-gate configurations or exempting one stack from coverage.AbstractTestFrameworkAdapter and implement the interfaces here rather than forking Infection.checkVersion() method). Recent releases indicate the project is alive, but this is maintainer-dependent infrastructure.For executives: This is plumbing inside our test-quality tooling, not a product feature and not a strategic bet. Its only relevance is that it lets us turn on mutation testing—"do our tests actually catch bugs?"—and extend that signal across whatever test framework each team uses, without building custom tooling. Risk is low: dev-only dependency, no runtime or customer-facing surface, and no lock-in beyond the CI job it powers. Recommendation: approve it as part of a mutation-testing pilot; do not fund work around it absent a concrete need for a non-standard test framework.
For engineering: Treat infection/abstract-testframework-adapter as the contract layer you implement only if you are writing or maintaining an Infection adapter—for anything else it is a transitive dependency you pin and forget. If you do implement it: extend AbstractTestFrameworkAdapter for the shared prepare/execute/parse flow, override mapExitCode() and getAdditionalArguments() for framework specifics, implement hasSyntaxError() where syntax failures must be distinguished from test failures, and keep all framework internals inside the adapter. Two cautions worth stating up front: this package has no meaningful test suite of its own, so validate adapters against real suites in a separate project; and it has a history of breaking changes in minor releases, so pin versions and budget a small upgrade cost per Infection bump. If the work is not on the critical path to a mutation-testing gate, defer it.
How can I help you explore Laravel packages today?