Providers are collected during test discovery, long before any setUp has run, so a provider touching the application container or the database fails. String keys on the provider…
Wrapping each test in a transaction and rolling back is much faster than migrating between tests, and three things do not survive it. The second connection case is…
Three mutation metrics are reported and two of them mostly restate line coverage. Setting a threshold on covered MSI and none on the others is what stops the…
An N+1 fixed by eager loading can be replaced by a memory problem, and a query-count assertion reports the page as healthy while it hydrates forty thousand objects.…
A provider returning a plain list produces failures reported as “with data set #3”, and you count rows to find out which one. The provider runs before setUp,…
94% coverage, and a suite that passes with the logic inverted. Coverage measures execution rather than verification, and there is a tool that measures the difference.
February brought the removals that 8 had warned about for a year, and a suite that ignored the warnings does not run at all. Rector handles the mechanical…
A test that fails one run in twenty trains the team to re-run the pipeline, and once that habit exists a real failure is re-run too. Quarantining without…