Pare de Executar Toda a Sua Suite de Testes. Use o AST em vez disso.
Você acabou de mudar uma função utilitária. O CI é acionado. 2.000 testes do Playwright começam a ser executados.
45 minutos depois, você recebe seu sinal verde.
Esse é o estado dos testes E2E em grande escala: cada PR paga o preço da suíte completa, independentemente do que realmente mudou. Não é um problema de ferramentas — é um problema de informação. Seu CI não sabe quais testes dependem da sua mudança. Então, ele executa tudo.
ast-impact-mapper-mcp corrige isso.
🧠 A Ideia: Gráficos de Importação Não Mentem
Cada projeto TypeScript é um gráfico direcionado de importações. Quando você muda src/utils/auth.ts, os únicos testes que precisam ser executados são aqueles que — direta ou indiretamente — o importam.
Isso não é um palpite baseado em nomes de arquivos ou estrutura de pastas. É uma travessia precisa do seu gráfico de dependência real.
A ferramenta usa ts-morph para analisar seu projeto TypeScript (incluindo tsconfig.json, aliases de caminho, arquivos JS/JSX) e constrói dois gráficos:
- Gráfico direto: arquivo → arquivos que ele importa
- Gráfico reverso: arquivo → arquivos que o importam
Dado um conjunto de arquivos alterados, uma BFS através do gráfico reverso encontra todos os testes que dependem deles de forma transitiva. Tudo o mais pode ser ignorado.
🛠️ Oito Ferramentas para Análise de Impacto Completa
Uma vez conectado ao seu assistente de IA (Claude, Cursor), o servidor MCP expõe oito ferramentas:
get_affected_tests
A ferramenta principal. Dê-lhe uma lista de arquivos alterados — ou a saída bruta de git diff --name-only — e receba de volta todos os arquivos de teste que os importam de forma transitiva.
Suporta TypeScript, JavaScript e JSX. Combina com *.spec.ts, *.test.ts, e arquivos dentro de diretórios __tests__/.
get_affected_tests_by_branch
Mesma coisa que acima, mas o servidor executa git diff por conta própria. Aponte para uma branch base (padrão: main) e ele cuida de tudo — nenhuma listagem manual de arquivos necessária.
get_dependency_graph
Importações diretas e importadores para qualquer arquivo. Retorna JSON por padrão, ou um fluxograma Mermaid que você pode colar diretamente no markdown do GitHub:
graph TD
"src/fixtures/base-fixture.ts" --> "src/pages/google-home-page.ts"
"src/fixtures/base-fixture.ts" --> "src/pages/google-results-page.ts"
"tests/google-pom.spec.ts" --> "src/fixtures/base-fixture.ts"
explain_impact
Encontra a cadeia de importação mais curta de um arquivo de teste para um arquivo de origem alterado. A IA pode dizer exatamente por que um teste é afetado:
"checkout.spec.ts é afetado porque importa CartPage.ts → PriceCalc.ts → o arquivo que você mudou."
get_coverage_gaps
Encontra arquivos de origem que não são alcançáveis a partir de nenhum teste através do gráfico de importação — código completamente não testado, encontrado estaticamente em milissegundos, sem necessidade de execução de cobertura.
get_test_summary
Visão geral da saúde do projeto em uma chamada: taxa de cobertura, os 10 arquivos de origem mais importados (maior raio de explosão se mudados), e testes com as cadeias de importação mais profundas.
refresh_project
Limpa o AST em cache e os gráficos de dependência para a raiz do projeto. Chame-o após mudar de branches ou puxar alterações.
get_dependency_graph com format: "mermaid"
Um fluxograma visual do bairro de importação de qualquer arquivo — pronto para GitHub, Notion ou qualquer renderizador Mermaid.
🕵️♂️ Cenário do Mundo Real: O Refatoramento Direcionado
Você está refatorando DateHelper.ts. Você quer executar apenas os testes afetados localmente antes de enviar — não a suíte completa.
Você pergunta à sua IA:
"Estou prestes a mudar
src/utils/DateHelper.ts. Quais testes devo executar?"
A IA chama get_affected_tests:
"4 testes estão afetados:
calendar.spec.ts,booking.spec.ts,history.spec.ts, eprofile.spec.ts. Tudo o mais pode ser ignorado."
Você executa esses 4 testes em 2 minutos. O CI confirma verde 40 minutos depois. Essa é a melhoria de 20x no ciclo de feedback — não por executar testes mais rápido, mas por executar menos deles.
🔍 Cenário do Mundo Real: O Risco Desconhecido
Você está revisando um PR que toca src/api/client.ts. Você quer saber o raio de explosão antes de mesclar.
Você pergunta:
"Quantos testes dependem de
src/api/client.ts? Mostre-me o gráfico de dependência."
A IA chama get_test_summary, depois get_dependency_graph:
"
api/client.tsé importado por 11 outros arquivos e é o arquivo de origem mais importado no projeto. Mudá-lo afeta 23 arquivos de teste — cerca de 40% da sua suíte. Eu recomendaria revisar este PR com cuidado."
Essa é uma informação que você não poderia obter apenas de um diff de código.
📊 Exemplo de Saída
Dada esta estrutura de projeto:
src/
fixtures/base-fixture.ts ← importa home-page e results-page
pages/google-home-page.ts
pages/google-results-page.ts
tests/
google-pom.spec.ts ← importa base-fixture
get_affected_tests após mudar google-home-page.ts:
{
"changed_files": ["/meu-projeto/src/pages/google-home-page.ts"],
"affected_tests": ["/meu-projeto/tests/google-pom.spec.ts"],
"total_affected": 1
}
explain_impact — a cadeia de importação exata:
{
"found": true,
"import_chain": [
"tests/google-pom.spec.ts",
"src/fixtures/base-fixture.ts",
"src/pages/google-home-page.ts",A otimização de testes pode reduzir significativamente o tempo de CI, permitindo que empresas brasileiras implementem mudanças mais rapidamente. Isso é crucial em um ambiente de desenvolvimento ágil, onde a eficiência é vital para a competitividade.
Noticias relacionadas

Pare de Copiar e Colar Schemas Zod para o ChatGPT. Construa um Mock Forge em vez disso.
O artigo apresenta o Model Context Protocol (MCP) para automatizar a geração de mocks e testes a partir de schemas Zod, eliminando a necessidade de copiar e colar informações entre IDEs e IA.

ForgeMesh: Um Roteador de Monetização Baseado em Adaptadores para Ecossistemas MCP
ForgeMesh é uma camada de monetização neutra para ferramentas MCP e fluxos de trabalho de agentes, resolvendo o problema da monetização que muitos construtores de agentes enfrentam.
Seu ROAS é uma mentira — Eu construí um servidor MCP para encontrar o número real
Como deduplicar a atribuição de anúncios em várias plataformas e revelar o verdadeiro ROAS dentro do chat do VS Code.
Gostou do conteudo?
Receba toda semana as principais novidades sobre WebMCP.