Test as You Touch
Test as You Touch / Test as You Touch
Padrão de qualidade CI/CD da Mukutu (ABM Portal), implementado abr/2026 com Claude Code. Fonte: skillflow.
A regra / The rule
Toda alteração em src/ exige um teste correspondente. Sem teste, o merge é bloqueado automaticamente.
- Arquivo em
src/sem teste → guardrail BLOQUEIA. - Arquivo em
src/com teste → guardrail PASSA → suite roda → merge. - Sem alteração em
src/→ PASSA direto.
Pipeline / Pipeline
Sequencial com fail-fast (se o guardrail falha, a suite nem roda):
| Step | Nome | Tempo | Stack |
|---|---|---|---|
| 1 | Diff Coverage Guardrail | ~35 s | git + bash |
| 2 | Test Run Suite | ~4 min | PHP + MySQL + Composer + PHPUnit |
Árvore de decisão do guardrail / Guardrail decision tree
Para cada arquivo alterado: está em src/? Não → ignora. Diretório ignorado (Console/, View/Helper/, Error/)? Sim → ignora. Tem teste em tests/TestCase/? Não → FAIL. Teste tem assertions reais (não só markTestIncomplete)? Não → FAIL. Sim → OK.
Regras / Rules
- Mapeamento CakePHP:
src/Controller/FooController.php→tests/TestCase/Controller/FooControllerTest.php. markTestIncomplete()não conta como teste.- Roda em PRs e em todos os branches. Bypass temporário:
STRICT_MODE=false.
Por que importa para a Nova Mukutu / Why it matters
- Qualidade vira gate automático, não disciplina manual — sustenta o fluxo de entrega sem regressão.
- Padrão replicável para os repos da equipe (ver Nova Mukutu).
Relacionado / Related
Fontes / Sources
- skillflow — Gabriel Fonseca, 2026-05-21