Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
| Property | Valor |
|---|---|
| ID da regra | MSTEST0082 |
| Título | Uma classe de teste herda um método de teste ou ciclo de vida de uma versão diferente do MSTest |
| Categoria | Usage |
| Correção interruptiva ou sem interrupção | Inquebrável |
| Habilitado por padrão | Sim |
| Severidade padrão | Warning |
| introduzido na versão | 4.4.0 (versão prévia) |
| Há uma correção de código | No |
Importante
Este analisador está planejado para MSTest 4.4 e está disponível apenas em builds de visualização até que o MSTest 4.4.0 seja lançado.
Cause
Uma classe de teste detectável herda um método de teste público ou um método de ciclo de vida de um assembly que faz referência a uma versão principal diferente do MSTest.
Descrição da regra
O MSTest faz a correspondência entre os atributos de teste e de ciclo de vida com base na identidade exata do tipo em tempo de execução. MSTest v3 define esses atributos em Microsoft.VisualStudio.TestPlatform.TestFramework, enquanto MSTest v4 define-os em MSTest.TestFramework. Se uma biblioteca base e um projeto de teste derivado tiverem versões principais diferentes, o adaptador ignora silenciosamente os atributos herdados do assembly do outro framework. Como resultado, os testes herdados não são descobertos e os métodos de inicialização ou limpeza herdados não são executados.
Por exemplo, uma biblioteca de teste compartilhada criada com MSTest v3 pode declarar:
public abstract class SharedTests
{
[TestMethod] public void InheritedTest() { }
}
Um projeto MSTest v4 que deriva da classe base aciona o diagnóstico:
[TestClass]
public sealed class ProductTests : SharedTests { } // Violation
O analisador verifica métodos de teste herdados, métodos de inicialização e limpeza de teste e métodos de inicialização e limpeza de classe configurados para execução para classes derivadas.
Como corrigir violações
Faça referência à mesma versão principal do MSTest da biblioteca base e do projeto de teste derivado. Recompile o assembly que declara a classe base e, para um atributo personalizado derivado de um atributo MSTest, recompile o assembly que declara o atributo personalizado.
Quando suprimir avisos
Não suprima avisos dessa regra. Uma violação significa que o MSTest ignora silenciosamente testes herdados ou métodos de ciclo de vida.
Suprimir um aviso
Se você quiser suprimir apenas uma única violação, adicione diretivas de pré-processador ao arquivo de origem para desabilitar a regra e, em seguida, habilitá-la novamente.
#pragma warning disable MSTEST0082
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0082
Para desabilitar a regra em um arquivo, uma pasta ou um projeto, defina a severidade como none no arquivo de configuração.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0082.severity = none
Para obter mais informações, consulte Como suprimir avisos de análise de código.