Saída do terminal

O relator de teste de terminal é a implementação interna do relatório de status e progresso para o terminal (console). Faz parte do núcleo Microsoft. Testing.Platform (MTP) e não requer nenhum pacote NuGet adicional.

Modos de saída

Há dois modos de saída disponíveis:

  • Normal, a saída contém o banner, reporta falhas completas dos testes, mensagens de alerta e escreve o resumo da execução. Saída com 1 teste com falha e um resumo

  • Detailed, igual a Normal, mas também relata Passed testes. Resultado com 1 teste falhado, 1 teste passado, e um resumo

ANSI

Internamente, há dois formatadores de saída diferentes que detectam automaticamente a funcionalidade do terminal para lidar com códigos de escape ANSI.

  • O formatador ANSI é usado quando o terminal é capaz de renderizar os códigos de escape.
  • O formatador não ANSI é usado quando o terminal não pode lidar com os códigos de escape, quando --no-ansi é usado ou quando a saída é redirecionada.

O padrão é detectar automaticamente as capacidades.

Progress

Um indicador de progresso é gravado no terminal. O indicador de progresso mostra o número de testes aprovados, testes reprovados e testes ignorados, seguido pelo nome da montagem testada, sua estrutura de destino e a arquitetura.

Uma barra de progresso com 23 testes aprovados, 0 testes com falha e 0 testes ignorados

A barra de progresso é gravada com base no modo selecionado:

  • ANSI, a barra de progresso é animada, aderindo à parte inferior da tela e é atualizada a cada 500ms. A barra de progresso é ocultada quando a execução do teste é feita.
  • não ANSI, a barra de progresso é gravada na tela a cada 3 segundos. O progresso está visível no resultado.

Saída direta do console e redesenho do progresso

Para animar a barra de progresso, o renderizador de progresso ANSI assume o controle do cursor do terminal e redesenhe repetidamente a parte inferior da tela. Qualquer texto escrito diretamente em stdout ou stderr fora do caminho de captura do framework de teste pode ser substituído ou removido durante esse redesenho. Por exemplo, uma chamada Console.WriteLine proveniente do código de ciclo de vida no nível de assembly ou de sessão (como um hook Before(Assembly) ou Before(TestSession)), ou de uma extensão, pode piscar brevemente e depois desaparecer quando a barra de progresso é atualizada.

Esse comportamento é distinto da saída padrão capturada por teste e do erro padrão. A saída que um teste gera enquanto é executado é capturada pelo framework e exibida de acordo com --show-stdout e --show-stderr, para que a barra de progresso não a sobrescreva.

Se o seu código precisar escrever diretamente no console e você precisar que essa saída permaneça visível, desative o progresso (--progress off no MTP 2.3.0+ ou --no-progress em versões anteriores). Como alternativa, desabilite ANSI (--ansi off no MTP 2.3.0+ ou --no-ansi em versões anteriores) para usar a saída de progresso não ANSI, que acrescenta novas linhas em vez de redesenhar no local e não substitui a saída direta anterior.

Opções

Opção Versão do MTP DESCRIÇÃO
--no-progress Desativa a exibição do progresso na tela. Descontinuado no MTP 2.3.0 em favor de --progress off.
--progress 2.3.0 Controla se o progresso é mostrado. Os valores válidos são auto (padrão), on (também aceita true, enable, 1), e off (também aceita false, disable, 0).
--no-ansi Desabilita a saída de caracteres de escape ANSI para a tela.
--ansi 2.3.0 Controla se os caracteres de escape ANSI são emitidos. Os valores válidos são auto (padrão), on (também aceita true, enable, 1), e off (também aceita false, disable, 0).
--output Especifica o nível de detalhamento da saída ao relatar testes. Os valores válidos são Normal e Detailed. O padrão é Normal.
--show-stdout 2.2.1 Determina quando mostrar a saída padrão capturada de um teste. Os valores válidos são All, Failede None. O padrão é All.
--show-stderr 2.2.1 Determina quando mostrar a saída de erro capturada de um teste. Os valores válidos são All, Failede None. O padrão é All.

Note

Um traço (—) na coluna de versão MTP marca as opções principais que não estão vinculadas a uma versão específica porque elas estão disponíveis desde as versões iniciais da plataforma.

Note

A partir da versão 2.3.0 do MTP, quando o MTP detecta que está em execução em um ambiente de ferramenta de LLM ou de IA, ele suprime o banner de inicialização e altera o valor padrão de --show-stdout e --show-stderr de All para Failed para reduzir o ruído.