testing

  • PHPUnit 11, and the annotations that are finally gone

    The 10.0 migration did the work; 11.0 removes what 10 deprecated, which makes it a two-hour upgrade. A major that only removes previously deprecated behaviour is the cheap…

  • A matrix that was seven jobs to test one thing

    A matrix of PHP versions crossed with dependency strategies, producing seven jobs, six of which tested a combination nobody runs. A full cross product tests combinations that no…

  • PHPUnit 11, and a suite that had already been migrated

    11.0 in February, a year after the 10.0 migration did the hard part, and eleven deprecations that were all things 10 had warned about.

  • The service we merged back

    Two services extracted in 2021, a team of four maintaining four pipelines, and forty-one of forty-four releases touching both.

  • The suite that got slower because of one fixture

    A test suite that went from four minutes to eleven over six weeks, with no test added that was individually slow. A fixture that is individually reasonable and…

  • The migration Rector wrote and we rewrote

    An automated refactor across 412 files, a diff of 8,000 lines, and three wrong hunks in it. The review nobody could actually do.

  • Snapshot tests for a generated stylesheet

    A token pipeline whose output is a stylesheet, and no test at all because the transforms had unit tests. Unit tests on each transform proved every stage correct…

  • The dependency we vendored

    A 200-line package with 41 transitive dependencies, doing one thing, and an advisory in something four levels down that we had never heard of.

  • terraform test, and the module that had no assertions

    A testing framework in 1.6, usable in 1.7, and a module that had been verified by applying it and looking. command = plan asserts against the plan without…

  • Reproducing a build from six months ago

    A security question about a release from July, and no way to rebuild it. The same commit produces a different image, and neither of them is wrong.