Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
| Property | Value |
|---|---|
| ID da regra | MSTEST0082 |
| Título | Uma classe de teste herda um ciclo de vida ou método de teste de uma versão diferente do MSTest |
| Categoria | Usage |
| A correção é invasiva ou não invasiva | Inquebrável |
| Ativado por padrão | Yes |
| Severidade padrão | Warning |
| Introduzido na versão | 4.4.0 (pré-visualização) |
| Existe uma correção de código | No |
Importante
Este analisador está planeado para o MSTest 4.4 e está disponível apenas em versões pré-visualizadas até ao lançamento do MSTest 4.4.0.
Cause
Uma classe de teste descobrível herda um método de teste público ou método de ciclo de vida de uma assembly que faz referência a uma versão principal diferente do MSTest.
Descrição da regra
O MSTest faz corresponder os atributos de teste e de ciclo de vida com base na identidade exata do tipo em tempo de execução. MSTest v3 define estes atributos em Microsoft.VisualStudio.TestPlatform.TestFramework, enquanto MSTest v4 define-os em MSTest.TestFramework. Se uma biblioteca base e um projeto de teste derivado usarem versões principais diferentes, o adaptador ignora silenciosamente os atributos herdados da outra montagem do 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 testes partilhada construída com MSTest v3 pode declarar:
public abstract class SharedTests
{
[TestMethod] public void InheritedTest() { }
}
Um projeto MSTest v4 que deriva da classe base desencadeia 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 testes, e métodos de inicialização e limpeza de classes configurados para correr para classes derivadas.
Como corrigir violações
Referencie a mesma versão principal do MSTest na biblioteca base e no projeto de testes 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 desta regra. Uma violação significa que o MSTest ignora silenciosamente testes herdados ou métodos do ciclo de vida.
Suprimir um aviso
Se você quiser apenas suprimir uma única violação, adicione diretivas de pré-processador ao seu arquivo de origem para desativar e, em seguida, reativar a regra.
#pragma warning disable MSTEST0082
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0082
Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua gravidade 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.