Partilhar via


Análise de código MSTest

As regras de análise MSTest ("MSTESTxxxx") inspecionam seu código C# ou Visual Basic em busca de segurança, desempenho, design e outros problemas.

Gorjeta

Se você estiver usando o Visual Studio, muitas regras do analisador têm correções de código associadas que você pode aplicar para corrigir o problema. As correções de código são mostradas no menu de ícones de lâmpadas.

As regras são organizadas em categorias, como uso de desempenho...

Começando com MSTest.TestFramework 3.7, o pacote NuGet MSTest.Analyzers é uma dependência da estrutura. Para versões anteriores, é necessário usar o metapacote MSTest ou adicionar explicitamente uma referência de pacote para MSTest.Analyzers.

MSTestAnalysisMode

A partir do MSTest 3.8, uma propriedade MSBuild chamada MSTestAnalysisMode está disponível para determinar quais analisadores estão habilitados em qual gravidade.

Gorjeta

Para ver quais regras estão habilitadas em qual gravidade para cada modo, você pode navegar até o pacote da versão de interesse no cache do NuGet, localizar o diretório globalconfigs e abrir o arquivo de .globalconfig correspondente ao modo de análise. Para obter mais informações sobre como localizar o diretório de cache do NuGet, consulte Gerenciando os pacotes globais, o cache e as pastas temporárias. A partir desse diretório, localize mstest.analyzers diretório, em seguida, a versão (3.8 e superior), em seguida, globalconfigs. Como alternativa, você pode baixar o pacote NuGet da versão de interesse do nuget.org e visualizá-lo no Gerenciador de Pacotes NuGet (aplicativo do Windows) ou visualizá-lo diretamente na versão do aplicativo Web do NuGet Package Explorer.

Os valores disponíveis para esta propriedade:

None

Este valor configura todos os analisadores para a gravidade none, desativando-os. Em seguida, você pode habilitar analisadores individuais usando arquivos .editorconfig ou .globalconfig.

Default

Essa configuração segue o comportamento documentado padrão para cada regra.

  • As regras habilitadas por padrão usarão sua gravidade padrão.
  • As regras desativadas por padrão terão gravidade none.

Observação

As regras habilitadas por padrão como avisos são violações que devem causar problemas em tempo de execução.

Este é o modo que esperamos que a maioria dos desenvolvedores use. As regras habilitadas por padrão com a severidade Informações (suggestion) são escaladas para avisos. Além disso, certas regras podem ser escaladas para erros nos modos Recommended e All. Por exemplo, MSTEST0003: Os métodos de teste devem ter layout válido é classificado como erro nos modos Recommended e All.

All

Este modo é mais agressivo do que Recommended. Todas as regras são ativadas como avisos. Como mencionado para o modo Recommended, determinadas regras podem ser elevadas a erros nos modos Recommended e All. Por exemplo, MSTEST0003: Os métodos de teste devem ter layout válido é classificado como erro nos modos Recommended e All.

Categorias

Regras de conceção

As regras de design ajudá-lo a criar e manter conjuntos de testes que aderem ao design adequado e às boas práticas.

Regras de desempenho

As regras de desempenho suportam testes de alto desempenho.

Regras de supressão

As regras de supressão suportam a supressão de diagnósticos de outras regras.

Regras de utilização

As regras de utilização suportam a utilização adequada do MSTest.

MSTESTEXP

Várias APIs do MSTest são decoradas com o ExperimentalAttribute. Este atributo indica que a API é experimental e pode ser removida ou alterada em versões futuras do MSTest. O atributo é usado para identificar APIs que ainda não são estáveis e podem não ser adequadas para uso em produção.

O diagnóstico MSTESTEXP alerta você para o uso de uma API experimental em seu código. Para suprimir esse diagnóstico com o SuppressMessageAttribute, adicione o seguinte código ao seu projeto:

using System.Diagnostics.CodeAnalysis;

[assembly: SuppressMessage("MSTESTEXP", "Justification")]

Como alternativa, você pode suprimir esse diagnóstico com a diretiva de pré-processador adicionando o seguinte código ao seu projeto:

#pragma warning disable MSTESTEXP
        // API that is causing the warning.
#pragma warning restore MSTESTEXP