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.
As regras de uso dão suporte ao uso adequado de atributos, métodos e padrões do MSTest. Essas regras capturam erros comuns e garantem que seus testes sigam os requisitos e convenções da estrutura.
Regras nesta categoria
| ID da regra | Title | Severity | Correção disponível |
|---|---|---|---|
| MSTEST0002 | A classe de teste deve ser válida. | Aviso | Yes |
| MSTEST0003 | O método de teste deve ser válido. | Aviso → Erro* | Yes |
| MSTEST0005 | TestContext deve ser válido. | Aviso | Yes |
| MSTEST0007 | Use o atributo no método de teste. | Aviso | Não |
| MSTEST0008 | TestInitialize deve ser válido. | Aviso | Yes |
| MSTEST0009 | TestCleanup deve ser válido. | Aviso | Yes |
| MSTEST0010 | ClassInitialize deve ser válido. | Aviso | Yes |
| MSTEST0011 | ClassCleanup deve ser válido. | Aviso | Yes |
| MSTEST0012 | AssemblyInitialize deve ser válido. | Aviso | Yes |
| MSTEST0013 | AssemblyCleanup deve ser válido. | Aviso | Yes |
| MSTEST0014 | DataRow deve ser válido. | Aviso | Yes |
| MSTEST0017 | Os args de asserção devem ser passados na ordem correta. | Informações | Yes |
| MSTEST0018 | DynamicData deve ser válido. | Aviso | Yes |
| MSTEST0023 | Não negue a asserção booliana. | Informações | Yes |
| MSTEST0024 | Não armazene TestContext estático. | Aviso | Não |
| MSTEST0026 | Os args de asserção devem evitar o acesso condicional. | Informações | Não |
| MSTEST0030 | O tipo que contém o método de teste deve ser uma classe de teste. | Aviso | Yes |
| MSTEST0031 | Não use System.ComponentModel.DescriptionAttribute. | Informações | Yes |
| MSTEST0032 | Revisar a condição de asserção sempre verdadeira. | Informações | Não |
| MSTEST0034 | Use ClassCleanupBehavior.EndOfClass. | Informações | Yes |
| MSTEST0035 | Use DeploymentItem com método de teste ou classe de teste. | Informações | Não |
| MSTEST0037 | Use métodos de asserção adequados. | Informações | Yes |
| MSTEST0038 | Evite Assert.AreSame com tipos de valor. | Informações | Yes |
| MSTEST0039 | Use métodos Assert.Throws mais recentes. | Informações | Yes |
| MSTEST0040 | Evite usar declarações no contexto nulo assíncrono. | Aviso | Não |
| MSTEST0041 | Use atributos baseados em condição com classe de teste. | Aviso | Não |
| MSTEST0042 | DataRow duplicado. | Aviso | Não |
| MSTEST0043 | Use o atributo de repetição no método de teste. | Aviso → Erro* | Yes |
| MSTEST0046 | Use Assert em vez de StringAssert. | Informações | Yes |
| MSTEST0048 | Uso da propriedade TestContext. | Aviso | Não |
| MSTEST0049 | Fluxo TestContext CancellationToken. | Informações | Yes |
| MSTEST0050 | A instalação de teste global deve ser válida. | Aviso | Yes |
| MSTEST0051 | Assert.Throws deve conter uma única instrução. | Informações | Yes |
| MSTEST0052 | Evite DynamicDataSourceType explícito. | Informações | Yes |
| MSTEST0053 | Evite usar parâmetros de formato do comando assert. | Informações | Yes |
| MSTEST0054 | Use a propriedade CancellationToken. | Informações | Yes |
| MSTEST0055 | Não ignore o valor retornado do método de string. | Aviso | Não |
| MSTEST0056 | TestMethodAttribute deve definir DisplayName corretamente. | Informações | Yes |
| MSTEST0057 | TestMethodAttribute deve propagar informações de origem. | Aviso | Não |
| MSTEST0058 | Evite assertivas em blocos de captura. | Informações | Não |
| MSTEST0059 | Use o atributo Parallelize corretamente. | Aviso | Não |
| MSTEST0060 | Atributo "TestMethodAttribute" duplicado. | Aviso | Yes |
| MSTEST0061 | Use o atributo OSCondition em vez da verificação de runtime. | Informações | Yes |
| MSTEST0062 | Evite os parâmetros out/ref nos métodos de teste. | Aviso | Yes |
| MSTEST0063 | A classe de teste deve ter um construtor válido. | Aviso | Não |
* Escalado para Erro nos modos Recommended e All.
Cenários comuns
Validação da estrutura de teste
Verifique se suas classes de teste, métodos e acessórios seguem os requisitos do MSTest:
- MSTEST0002: testar requisitos de layout de classe (por exemplo, público, não estático).
- MSTEST0003: Requisitos de layout do método de teste (️⚠ escalado para Erro).
- MSTEST0030: métodos com [TestMethod] devem estar em um [TestClass].
- MSTEST0063: validação do construtor de classe de teste.
Métodos de ciclo de vida
Validar métodos de inicialização e limpeza:
- MSTEST0008: TestInitialize validação.
- MSTEST0009: validação TestCleanup.
- MSTEST0010: Validação de ClassInitialize.
- MSTEST0011: Validação de ClassCleanup.
- MSTEST0012: validação AssemblyInitialize.
- MSTEST0013: Validação AssemblyCleanup.
- MSTEST0034: Definir ClassCleanupBehavior.EndOfClass.
- MSTEST0050: validação de dispositivo de teste global.
Teste controlado por dados
Verifique se os atributos de dados são usados corretamente:
- MSTEST0007: os atributos de dados devem estar em métodos de teste.
- MSTEST0014: validação de DataRow.
- MSTEST0018: validação de DynamicData.
- MSTEST0042: Identificar DataRows duplicados.
- MSTEST0052: Use AutoDetect para TipoDeFonteDeDadosDinâmico.
- MSTEST0062: evite parâmetros de output/ref.
Escrevendo melhores assertivas
Regras para uso correto e eficaz da declaração:
- MSTEST0017: Insira o esperado/real na ordem correta.
- MSTEST0023: Não negue condições (use Assert.IsFalse diretamente).
- MSTEST0026: evite operadores condicionais nulos em declarações.
- MSTEST0032: Revise condições que são sempre verdadeiras.
- MSTEST0037: use o método de declaração mais apropriado.
- MSTEST0038: não use AreSame com tipos de valor.
- MSTEST0039: Use Assert.ThrowsExactly (API mais recente).
- MSTEST0046: prefira Afirmar em vez de StringAssert.
- MSTEST0051: Assert.Throws deve testar uma única instrução.
- MSTEST0053: use a interpolação de cadeia de caracteres em vez de formatar parâmetros.
- MSTEST0058: Não coloque asserções em blocos de captura.
Uso de TestContext
Uso adequado do objeto TestContext:
- MSTEST0005: validação da propriedade TestContext.
- MSTEST0024: não armazene TestContext em campos estáticos.
- MSTEST0048: acesso restrito à propriedade em fixtures de teste.
- MSTEST0049: Fluxo de tokens de cancelamento do TestContext.
- MSTEST0054: Use a propriedade TestContext.CancellationToken.
Padrões assíncronos
Regras para código de teste assíncrono:
- MSTEST0040: evite afirmações em métodos void assíncronos.
Configuração de teste
- MSTEST0031: Use atributos adequados (não System.ComponentModel.Description).
- MSTEST0035: uso do DeploymentItem.
- MSTEST0041: os atributos de condição devem estar em classes de teste.
- MSTEST0043: Os atributos de repetição devem estar nos métodos de teste (️⚠ elevado a Erro).
- MSTEST0055: não ignore os valores de retorno do método de cadeia de caracteres.
- MSTEST0056: defina DisplayName corretamente em TestMethodAttribute.
- MSTEST0057: propagar informações de origem em TestMethodAttribute personalizado.
- MSTEST0059: Não use Parallelize e DoNotParallelize.
- MSTEST0060: Evite TestMethodAttribute duplicado.
- MSTEST0061: use o atributo OSCondition para verificações de plataforma.