Skip to content

Resumo da execução de testes unitários e impedimento visível na árvore - #142

Merged
ricxJr merged 1 commit into
masterfrom
feat/resumo-execucao-testes-unitarios
Sep 16, 2026
Merged

ricxJr merged 1 commit into
masterfrom
feat/resumo-execucao-testes-unitarios

Conversation

@ricxJr

@ricxJr ricxJr commented Sep 16, 2026

Copy link
Copy Markdown
Collaborator

Problema

Ao rodar um pacote inteiro de testes, a saída passa de centenas de linhas e o que quebrou fica perdido no meio dos asserts que passaram — só se acha o erro por sorte, se ele calhar de sair no fim.

Pior que isso: classe que não executa (base não montada, ambiente ausente) era reportada como skipped. A Test Explorer resolve o estado do pai pelo pior estado dos filhos, e nessa escala skipped perde para passed — ou seja, um pacote verde escondia a classe que nem rodou. Não havia como perceber a não ser abrindo item por item.

Abordagem

  • Resumo consolidado impresso SEMPRE como última coisa da execução, com as falhas (classe :: método + primeira mensagem), os erros de execução e as classes que não executaram, com o motivo. O mesmo resumo, sem ANSI, vai para o canal de saída "Consistem: Resumo dos Testes", que só guarda resumos — dá para voltar nele sem depender de scroll.
  • Impedimento vira errored, não skipped: sobe a árvore e o pacote fica vermelho mesmo colapsado. Quando é o usuário que recusa executar (não gerar a base, não escolher namespace), continua skipped — ele já sabe.
  • Aviso com atalho para o resumo quando alguma classe não executa.
  • Comando Consistem: Mostrar o Que Falhou nos Testes, com botão na barra de título do Test Explorer: colapsa a árvore, ordena por situação e abre o resumo.

A lógica nova mora em src/ccs/features/unitTest/resumoExecucao.ts; em src/commands/unitTest.ts o diff é só o necessário para alimentar e emitir o resumo. Vale apenas para o executor novo — o usarExecutorAntigo ficou de fora por já estar marcado para remoção.

Exemplo da saída

──────────────────────────────────────────────
RESUMO DA EXECUÇÃO
  208 método(s) de teste: 205 com sucesso · 2 com falha · 1 ignorado(s)
  3 classe(s) NÃO executada(s)

FALHAS (2)
  br.com.consistem.ut.ccpv.ValidacoesPedido :: ValidarDesconto
      AssertEquals - esperado 10,00 e veio 8,00

ERROS DE EXECUÇÃO (1)
  br.com.consistem.ut.ccrhc.CalculoImpostoRenda
      Error: timeout of 600000ms exceeded

NÃO EXECUTADAS (2)
  br.com.consistem.ut.ccpv.CalculoReversoTributos
      A base padrao-03 não está montada e não pode ser gerada nesta instalação.
──────────────────────────────────────────────

Testes

  • npm run compile, tsc --noEmit, ESLint e Prettier limpos.
  • Formatação do resumo verificada rodando a classe isolada com dados simulados (falha com mensagem multilinha, falha sem detalhe, erro de classe, impedimento por escolha e por ambiente, e o caso "tudo passou").
  • Falta validar contra servidor: rodar um pacote real no Extension Development Host para confirmar o estado da árvore com classe impedida e o resumo com dados do executor.

🤖 Generated with Claude Code

… árvore

Numa execução de pacote inteiro a saída passa de centenas de linhas, e o que
quebrou fica perdido no meio dos asserts que passaram. Pior: classe que não
executa por falta de base era reportada como `skipped`, e a Test Explorer
resolve o estado do pai pelo pior filho -- onde `skipped` perde para `passed`.
Resultado: pacote verde escondendo classe que nem rodou, sem como perceber a
não ser abrindo item por item.

- Resumo consolidado impresso SEMPRE no fim da execução, com falhas, erros de
  execução e classes que não executaram, e espelhado no canal de saída
  "Consistem: Resumo dos Testes", que só guarda resumos.
- Classe impedida pelo ambiente passa a ser reportada como `errored`, que sobe
  a árvore e fica visível com o pacote colapsado. Quando é o usuário que recusa
  (não gerar a base, não escolher namespace), segue `skipped`.
- Aviso com atalho para o resumo quando alguma classe não executa.
- Comando "Consistem: Mostrar o Que Falhou nos Testes", com botão na barra de
  título do Test Explorer: colapsa a árvore, ordena por situação e abre o resumo.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@ricxJr
ricxJr merged commit 7edeb97 into master Sep 16, 2026
2 checks passed
@ricxJr
ricxJr deleted the feat/resumo-execucao-testes-unitarios branch September 16, 2026 16:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant