split fast dev test from the coverage gate run

`make test` is now the fast dev inner loop: no coverage, parallel
(--concurrency=12), ~21s warm (down from ~36s). Coverage moves to a new
`make test-coverage`, which push-check runs to feed coverage-gate. Drop the
separate test-a11y pass from push-check — the coverage run already executes
test/a11y. Both runs get --timeout 60s so a hung test fails fast instead of
wedging the runner ~10min and stalling the gate.

Measured: coverage is the floor (~36s) and concurrency-insensitive, so the
gate keeps coverage without --concurrency; only the no-coverage dev path
benefits from parallelism.

T-192.

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-05-31 17:04:32 +02:00
co-authored by Claude
parent 3c9cc4cbae
commit 97c970223d
5 changed files with 50 additions and 9 deletions
+7 -3
View File
@@ -110,9 +110,13 @@ t: gen-build-info ## Run one test path with tee'd output. Usage: make t T=test/p
flutter test $(T) 2>&1 | tee test/.test-output/last.log
.PHONY: test
test: gen-build-info ## Fast: analyze + format + unit + widget + golden (<60s).
test: gen-build-info ## Fast dev loop: analyze + format + unit + widget + golden, NO coverage, parallel (~20s).
ci/test.sh
.PHONY: test-coverage
test-coverage: gen-build-info ## Same suite WITH coverage → coverage/lcov.info (for the gate / CI). Slower.
ci/test.sh --coverage
.PHONY: test-core
test-core: gen-build-info ## Core subsystem tests (IPC, PTY, git, pane registry).
ci/test_core.sh
@@ -133,7 +137,7 @@ test-e2e: ## End-to-end Playwright smoke.
test-all: test-core test test-a11y test-integration test-e2e ## Everything, sequentially.
.PHONY: coverage-gate
coverage-gate: ## Coverage gate — fails if total line % < pubspec.yaml `coverage_floor:` (D-66). Assumes `make test` ran first.
coverage-gate: ## Coverage gate — fails if total line % < pubspec.yaml `coverage_floor:` (D-66). Assumes `make test-coverage` ran first.
ci/coverage_gate.sh
.PHONY: changelog-gate
@@ -302,7 +306,7 @@ decisions-validate: ## Parser dry-run over governance/{decisions,questions,rejec
pql decisions validate
.PHONY: push-check
push-check: decisions-validate test-core test test-a11y coverage-gate changelog-gate ## Pre-push gate (fast — <2 min target).
push-check: decisions-validate test-core test-coverage coverage-gate changelog-gate ## Pre-push gate (fast — <2 min target). test-coverage already runs the a11y suite (test/a11y), so no separate test-a11y pass.
.PHONY: push-check-full
push-check-full: push-check test-integration smoke-bundle ## Pre-release gate (push-check + integration + smoke; slower).