Compartilhar 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.

Dica

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 do ícone de lâmpada.

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

Começando com MSTest.TestFramework 3.7, o pacote NuGet MSTest.Analyzers é uma dependência do framework. Para versões anteriores, você precisa 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 severidade.

Dica

Para ver quais regras estão habilitadas e com qual gravidade para cada modo, navegue até o pacote da versão desejada no cache do NuGet, localize o diretório globalconfigs e abra o arquivo .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. Nesse diretório, localize o diretório mstest.analyzers, então a versão 3.8 ou superior e, em seguida, globalconfigs. Como alternativa, você pode baixar o pacote NuGet da versão de interesse e exibi-lo no Gerenciador de nuget.org Pacotes NuGet (aplicativo do Windows) ou exibir diretamente na versão do aplicativo Web do Gerenciador de Pacotes NuGet.

Os valores disponíveis para esta propriedade:

None

Esse valor configura todos os analisadores para o nível de severidade none, desabilitando-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 que são habilitadas por padrão usarão a severidade padrão.
  • As regras desabilitadas por padrão usarão a gravidade none.

Observação

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

Esse é o modo que a maioria dos desenvolvedores deve usar. As regras habilitadas por padrão com a gravidade Informações (suggestion) são escalonadas para avisos. As regras a seguir são classificadas como erros em ambos os modos Recommended e All.

All

Esse modo é mais agressivo do que Recommended. Todas as regras são habilitadas como avisos. Além disso, as seguintes regras são consideradas erros:

Categorias

Regras de design

As regras de design ajudam você a criar e manter conjuntos de testes que aderem ao design adequado e às boas práticas.

Regras de desempenho

As regras de desempenho dão suporte a 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 uso

As regras de uso dão suporte ao uso adequado do MSTest.

MSTESTEXP

Várias APIs do MSTest são decoradas com o ExperimentalAttribute. Esse 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 estão estáveis e podem não ser adequadas para uso em produção.

O diagnóstico MSTESTEXP alerta você para usar uma API experimental em seu código. Para suprimir esse diagnóstico com 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