jasonmccreary/phpunit-tia
phpunit-tia brings Test Impact Analysis to PHPUnit: it tracks which tests cover which code, then runs only the tests affected by your uncommitted changes. Skip the full suite, get faster feedback, and keep confidence in your changes.
#25 summarizes affected files on every run; #26 indexes tests by source for testsLinkedTo()), which lets a PM argue for TIA adoption with measurable evidence — wall-clock savings, tests skipped, confidence intervals — rather than vibes.#24 "explicit edges and integration API" plus #27 "expose every known test file on the Edges contract" turn this from a black-box speed hack into a programmable dependency graph. That is the deciding input for build-vs-buy: if you need custom edge definitions (non-PHPUnit suites, generated code, config-driven coupling), buy and extend the API; if your graph is trivial, don't.#28 fixes graph recording under ParaTest. A PM can now sequence "enable TIA" and "shard the suite" as independent roadmap items instead of a forced bundle — sharding no longer blocks or corrupts the impact graph.#22 (configured group selection counts as a full run) and #21 (never replay without a recorded baseline) are conservative-correctness defaults. These are the two failure modes that make teams abandon TIA after one escaped defect, so they are releasable risk-reduction work, not polish.Adopt when:
Edges contract, testsLinkedTo()), e.g. dashboards, PR annotations, or a custom CI reporter.Look elsewhere when:
0.5.x; the integration API (#24) in particular is young and may shift.To executives: This is a CI time-and-cost lever. A PHPUnit test impact analysis tool that only runs tests affected by a change, with conservative fallbacks — if it can't prove a shortcut is safe (no baseline, ambiguous group selection), it runs everything. v0.5.0 is the release that makes it usable in real parallel CI and reportable to leadership: every run now reports the affected test files, which gives us the before/after evidence to justify keeping it.
To engineering: v0.5.0 lands the integration surface we'd want before committing — an explicit edges contract, testsLinkedTo() backed by a source index, a per-run summary of affected files, and a ParaTest fix. The two behavioral changes worth knowing are safety defaults, not restrictions: configured group selection is treated as a full run, and the package refuses to replay without a recorded baseline. Both trade a little speed for eliminating the silent-skip failure mode. Still 0.x, so treat Edges as an interface we build against but may need to adjust.
Ask: Timebox a 2–4 week pilot — observe-only mode on CI, baseline artifact storage sorted, and one dashboard consuming the affected-files summary. Success criteria: measured reduction in executed tests on PRs, zero escaped defects attributable to skipped tests, and a stable baseline across ParaTest shards.
How can I help you explore Laravel packages today?