Zum Hauptinhalt springen
Echtzeit-Radar & Feeds
Alle RSS Feeds ➔
👥 Community & Social
Malware / Trojaner / VirenKernelFlirt(01.10.2026 um 06:47 Uhr)
•
IT Security NachrichtenApp-arently it's legit.(01.10.2026 um 07:00 Uhr)
•
IT Security NachrichtenAnthropic’s Court Battles.(01.10.2026 um 07:00 Uhr)
••••••••
Malware / Trojaner / VirenKernelFlirt(01.10.2026 um 06:47 Uhr)
•
IT Security NachrichtenApp-arently it's legit.(01.10.2026 um 07:00 Uhr)
•
IT Security NachrichtenAnthropic’s Court Battles.(01.10.2026 um 07:00 Uhr)
••••••••
Intelligence View
⚡ tsecurity.de Intelligence

Pare de Executar Toda a Sua Suite de Testes em Cada Commit 🚫🧪

Todos nós já passamos por isso. Você faz uma pequena correção em um arquivo, commita suas mudanças e fica assistindo toda a sua suite de testes rodar pelos próx…

Beitrag
0
Seite
0
↗ Quelle (dev.to)
Social ReaktionenReagiere als Erste:r — dein Feedback zählt!

Todos nós já passamos por isso. Você faz uma pequena correção em um arquivo, commita suas mudanças e fica assistindo toda a sua suite de testes rodar pelos próximos 5 minutos. Familiar?



E se eu te dissesse que existe uma maneira de executar apenas os testes que estão realmente relacionados às suas mudanças? Conheça o test-staged.






O Problema



Executar toda a sua suite de testes antes de cada commit é:




  • ⏰ Lento - Desperdiçando tempo precioso de desenvolvimento

  • 😤 Frustrante - Quebrando seu estado de fluxo

  • 🔄 Redundante - Testando código que você nem tocou



A maioria dos desenvolvedores:




  1. Pula os testes completamente (perigoso!)

  2. Espera por longas execuções de testes (frustrante!)

  3. Faz push e torce para o CI pegar os problemas (arriscado!)



Tem que haver uma maneira melhor.






A Solução: test-staged



test-staged é como o lint-staged, mas para testes. Ele identifica inteligentemente quais testes estão relacionados às suas mudanças em stage e executa apenas esses.






Quão Inteligente É?



test-staged usa diferentes estratégias dependendo do seu test runner:





  • Jest/Vitest: Usa análise nativa de grafo de dependências (--findRelatedTests / vitest related)


  • Mocha/Ava: Mapeia inteligentemente arquivos fonte para arquivos de teste (ex: user.ts → user.test.ts, src/api/users.ts → src/api/__tests__/users.test.ts)






Começando em 30 Segundos



A instalação é moleza:




npm install -D test-staged
# ou
pnpm add -D test-staged
# ou
yarn add -D test-staged
# ou
bun add -D test-staged






E é isso. Sério. É zero configuração por padrão.






Configure como um Hook de Pre-Commit



A mágica acontece quando você combina com o Husky:




# Instale o husky
npm install -D husky
npx husky init

# Adicione test-staged ao pre-commit
echo "npx test-staged" > .husky/pre-commit






Agora cada commit vai:




  1. ✅ Executar apenas testes relacionados às suas mudanças

  2. ⚡ Completar em segundos ao invés de minutos

  3. 🛡️ Bloquear commits se os testes falharem






Exemplos do Mundo Real






Exemplo 1: Mudança em um Único Arquivo



Você está trabalhando em uma funcionalidade de autenticação de usuário:




# Você modificou:
git add src/auth/login.ts

# test-staged executa APENAS:
src/auth/__tests__/login.test.ts
src/integration/__tests__/auth-flow.test.ts # (porque importa login.ts)

# NÃO executa:
src/payments/__tests__/*.test.ts ❌
src/dashboard/__tests__/*.test.ts ❌
(e mais de 200 testes não relacionados) ❌






Resultado: Testes completam em 3 segundos ao invés de 2 minutos.






Exemplo 2: Refatorando Utilitários



Você refatorou uma função utilitária:




# Você modificou:
git add src/utils/formatDate.ts

# test-staged automaticamente encontra TODOS os testes que dependem dela:
src/utils/__tests__/formatDate.test.ts
src/components/__tests__/DatePicker.test.ts
src/pages/__tests__/Dashboard.test.ts






Inteligente o suficiente para capturar dependências indiretas, rápido o suficiente para te manter produtivo.






Exemplo 3: Suporte a Monorepo



Trabalhando em um monorepo? test-staged te cobre:




# Você está em packages/ui
git add Button.tsx

# Executa apenas:
packages/ui/__tests__/Button.test.tsx

# Não executa testes de:
packages/api/ ❌
packages/cli/ ❌









Por Que Você Vai Amar






🎯 Zero Configuração



Detecta automaticamente:




  • Seu gerenciador de pacotes (npm, pnpm, yarn, bun)

  • Seu test runner (Jest, Vitest, Mocha, Ava)

  • Sua estrutura de projeto (monorepo ou pacote único)






⚡ Extremamente Rápido



Em um projeto típico com 500+ testes:





  • Antes: 2-3 minutos por commit


  • Depois: 2-5 segundos por commit



Isso é uma melhoria de 36x no uso do mundo real.






🧠 Realmente Inteligente



Para Jest e Vitest, usa o grafo de dependências nativo:




// Se você mudar userService.ts
// ele encontra testes que o importam:
import { createUser } from './userService'
import { validateUser } from './userService'






Para Mocha e Ava, usa correspondência de padrões:




src/models/user.ts → src/models/user.test.ts
src/api/users.ts → src/api/__tests__/users.test.ts
lib/parser.ts → lib/parser.spec.ts









🛠️ Personalizável Quando Necessário



Embora funcione sem configuração, você pode customizá-lo:




// package.json
{
"test-staged": {
"runner": "jest",
"mode": "related",
"testExtensions": [".test", ".spec", ".e2e"]
}
}






Ou crie um .test-stagedrc.json:




{
"runner": "vitest",
"testExtensions": [".test", ".spec", "Test", "E2E"]
}









Test Runners Suportados




























Runner Método de Detecção

Vitest ⭐
Nativo vitest related (grafo de dependências)

Jest ⭐
Nativo --findRelatedTests (grafo de dependências)

Mocha ✅
Correspondência de padrões de arquivo

Ava ✅
Correspondência de padrões de arquivo


Mais runners em breve!






A Experiência do Desenvolvedor



Veja como fica seu fluxo de trabalho:




# Faça suas mudanças
vim src/components/Button.tsx

# Coloque em stage
git add src/components/Button.tsx

# Commit (test-staged executa automaticamente via hook de pre-commit)
git commit -m "fix: estado hover do botão"

# Saída:
Running tests for staged files...
✓ src/components/__tests__/Button.test.tsx (2 tests) 0.8s

Tests passed! ✨
[main abc1234] fix: estado hover do botão






Sem comandos de teste manuais. Sem espera. Sem commits quebrados.






Perguntas Comuns



P: E se eu quiser executar todos os testes?


R: Apenas pule o hook: git commit --no-verify ou execute sua suite de testes manualmente.



P: Funciona com CI?


R: Sim! Seu CI ainda deve executar a suite de testes completa. test-staged é para velocidade no desenvolvimento local.



P: E quanto a testes de integração/E2E?


R: test-staged vai encontrá-los se eles importarem seus arquivos modificados. Você também pode customizar quais testes executar.



P: Posso usar sem hooks do Git?


R: Absolutamente! Apenas execute npx test-staged manualmente quando quiser.





Experimente Hoje



Comece em menos de um minuto:




npm install -D test-staged husky
npx husky init
echo "npx test-staged" > .husky/pre-commit






Depois faça um commit e veja a mágica acontecer. ✨













Resumindo



Se você ainda está executando toda sua suite de testes em cada commit, está desperdiçando tempo. test-staged te dá:




  • ⚡ Commits mais rápidos (segundos ao invés de minutos)

  • 🎯 Melhor foco (teste apenas o que mudou)

  • 🛡️ Código mais seguro (testes realmente executam ao invés de serem pulados)

  • 🚀 Melhor DX (zero configuração, simplesmente funciona)



Experimente e me diga o que você achou! Seu eu do futuro vai te agradecer. 🙌






Você já experimentou test-staged? Qual é sua estratégia atual de testes em pre-commit? Compartilhe nos comentários abaixo! 👇

Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten Pare de Executar Toda a Sua Suite de Testes em Cada Commit 🚫🧪

Thematisch verwandte Begriffe: Pare, Executar, Toda, Suite · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

💬 Kommentare werden geladen…
Zum Aktualisieren ziehen
tsecurity.de Icon
Offline-Lesen, Eilmeldungen & 0ms Ladezeit

Installiere tsecurity.de direkt auf deinen Home-Bildschirm für das ultimative Vollbild-Magazinerlebnis ohne Browser-Leisten.

Nächster Beitrag