Audit test suites for performance #39
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
I want to ensure we have a lightning fast test suite that agents can run often. This will likely be easier to accomplish after #30 is completed to allow for keyboard control of every aspect of Braid.
Ultimately, we should have a lightning fast test suite that tests unit tests, and UI tests. Any tests marks slow (over 5s) should be audited and improved if possible, but if they remain slow then they become part of the full regression test that is only done prior to merging/pushing a change (not done during development).
In addition, the final deployment tends to take a while, so if there any ways to speed that up as well, we should do it as part of this work.
Shipped in #58 (commit
c88c254) and archived asopenspec/changes/archive/2026-09-26-keyboard-commands-and-fast-tests. The behaviour is specified inopenspec/specs/test-lanesandopenspec/specs/deployment.Test lanes
./tools/test.shis the fast lane, for use while developing. It runs the backend unit tests on every core (pytest-xdist), the UI type check, vitest and build, and the Playwright specs against the fixture backend, leaving out the slow tests../tools/test.sh fullruns everything before a merge or push, including the@livespecs whenOSF_URLis set.@slow. The two real-osfd specs are tagged@live.tests/fast_lane_budget.pynames every unmarked backend test over 5 s at the end of each run.Deploy
uv sync, ~150 s), and the push re-sent ~1 GB (2 m 14 s). The cause:ARG BRAID_COMMITwas declared before theRUNsteps, and Docker passes a build arg to each laterRUN, so every commit was a cache miss for all of them. It now comes after the lastRUN, and the Python dependencies install beforeCOPY src.Follow-up: #59, the
follow-the-taillive specs, which were already failing before this change.