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.
Recommended
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
.
Observação
As seguintes regras são totalmente opcionais e não estão ativadas nos modos Default
, Recommended
ou 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