perf: paraleliza a suíte de backend com pytest-xdist #46

Merged
jhony75 merged 1 commit from perf/pytest-xdist-parallelism into develop 2026-09-09 15:16:14 -03:00
Owner

Fecha o ciclo de investigação de velocidade de CI (item 6 do pedido original) — future-proofing pra quando a suíte crescer, mesmo já estando rápida hoje.

Por que é seguro

Cada teste já é totalmente isolado desde a mudança do banco pré-migrado (PR #43): arquivo SQLite próprio por teste (cópia do template), nenhum estado global mutável compartilhado entre testes/arquivos. Auditei a suíte antes de ativar: sem os.environ direto fora de monkeypatch (exceto o build do template, uma vez por worker), sem paths fixos fora de tmp_path, sem globals mutáveis, sem dependência de ordem entre testes.

Validação

  • 3 execuções locais limpas com -n auto (156 passed, sem flakiness)
  • 1 execução real nesta CI (branch ci, sem PR/deploy): 156 passed, 0 falhas

Resultado real medido nesta CI

pytest sozinho: 249.63s → 24.63s (~10x). Fase "Backend" completa (venv + pip install + pytest + restore drill): ~4m49s → ~69s.

Junto com a PR #43 (banco pré-migrado) e a PR #44 (instrumentação), fecha a investigação completa de CI speed que começou nessa rodada.

Fecha o ciclo de investigação de velocidade de CI (item 6 do pedido original) — future-proofing pra quando a suíte crescer, mesmo já estando rápida hoje. ## Por que é seguro Cada teste já é totalmente isolado desde a mudança do banco pré-migrado (PR #43): arquivo SQLite próprio por teste (cópia do template), nenhum estado global mutável compartilhado entre testes/arquivos. Auditei a suíte antes de ativar: sem `os.environ` direto fora de monkeypatch (exceto o build do template, uma vez por worker), sem paths fixos fora de `tmp_path`, sem globals mutáveis, sem dependência de ordem entre testes. ## Validação - 3 execuções locais limpas com `-n auto` (156 passed, sem flakiness) - 1 execução real nesta CI (branch `ci`, sem PR/deploy): 156 passed, 0 falhas ## Resultado real medido nesta CI `pytest` sozinho: **249.63s → 24.63s** (~10x). Fase "Backend" completa (venv + pip install + pytest + restore drill): **~4m49s → ~69s**. Junto com a PR #43 (banco pré-migrado) e a PR #44 (instrumentação), fecha a investigação completa de CI speed que começou nessa rodada.
perf: paraleliza a suite de backend com pytest-xdist (-n auto)
All checks were successful
EEG QA CI / validate-and-build (pull_request) Successful in 3m22s
EEG QA CI / Deploy production (pull_request) Has been skipped
EEG QA CI / Deploy development (pull_request) Has been skipped
34b181746e
Seguro porque cada teste ja e totalmente isolado desde a mudanca do
banco pre-migrado (conftest.py): arquivo SQLite proprio por teste,
nenhum estado global mutavel compartilhado entre testes ou arquivos.
Confirmado via grep (sem os.environ direto fora de monkeypatch exceto
o build do template, sem paths fixos fora de tmp_path, sem globals
mutaveis, sem dependencia de ordem entre testes) e validado com 3
execucoes locais limpas + 1 execucao real nesta CI (156 passed, 0
falhas, sem flakiness).

Resultado real nesta CI: pytest caiu de 249.63s pra 24.63s (~10x).
Fase "Backend" completa (venv+pip+pytest+restore drill) caiu de ~4m49s
pra ~69s.
jhony75 merged commit b60c85a1a3 into develop 2026-09-09 15:16:14 -03:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jhony75/eeg-qa!46
No description provided.