Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
As regras de utilização suportam o uso correto dos atributos, métodos e padrões do MSTest. Estas regras detetam erros comuns e garantem que os seus testes cumprem os requisitos e convenções do framework.
Regras nesta categoria
| ID da regra | Title | Severity | Correção disponível |
|---|---|---|---|
| MSTEST0002 | A classe de teste deve ser válida. | Advertência | Yes |
| MSTEST0003 | O método de teste deve ser válido. | Aviso → Erro* | Yes |
| MSTEST0005 | TestContext deve ser válido. | Advertência | Yes |
| MSTEST0007 | Use atributo no método de teste. | Advertência | Não |
| MSTEST0008 | TestInitialize deve ser válido. | Advertência | Yes |
| MSTEST0009 | TestCleanup deve ser válido. | Advertência | Yes |
| MSTEST0010 | O ClassInitialize deve ser válido. | Advertência | Yes |
| MSTEST0011 | O ClassCleanup deve ser válido. | Advertência | Yes |
| MSTEST0012 | AssemblyInitialize deve ser válido. | Advertência | Yes |
| MSTEST0013 | AssemblyCleanup deve ser válido. | Advertência | Yes |
| MSTEST0014 | O DataRow deve ser válido. | Advertência | Yes |
| MSTEST0017 | Os argumentos de asserção devem ser passados pela ordem correta. | Informações | Yes |
| MSTEST0018 | O DynamicData deve ser válido. | Advertência | Yes |
| MSTEST0023 | Não negues a afirmação booleana. | Informações | Yes |
| MSTEST0024 | Não armazene o TestContext estático. | Advertência | 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. | Advertência | Yes |
| MSTEST0031 | Não use System.ComponentModel.DescriptionAttribute. | Informações | Yes |
| MSTEST0032 | Reveja a condição de asseveração sempre verdadeira. | Informações | Não |
| MSTEST0034 | Use ClassCleanupBehavior.EndOfClass. | Informações | Yes |
| MSTEST0035 | Use o DeploymentItem com método de teste ou classe de teste. | Informações | Não |
| MSTEST0037 | Use métodos adequados de afirmação. | Informações | Yes |
| MSTEST0038 | Evite Assert.AreSame com os tipos de valor. | Informações | Yes |
| MSTEST0039 | Use métodos mais recentes do Assert.Throws. | Informações | Yes |
| MSTEST0040 | Evite usar asserts em contexto void assíncrono. | Advertência | Não |
| MSTEST0041 | Use atributos baseados em condição com a classe de teste. | Advertência | Não |
| MSTEST0042 | O DataRow duplicado. | Advertência | Não |
| MSTEST0043 | Utilize o atributo de repetição no método de teste. | Aviso → Erro* | Yes |
| MSTEST0046 | Use Assert em vez de StringAssert. | Informações | Yes |
| MSTEST0048 | Utilização de propriedades no TestContext. | Advertência | Não |
| MSTEST0049 | Teste de Fluxo TestContext CancellationToken. | Informações | Yes |
| MSTEST0050 | A configuração de teste global deve ser válida. | Advertência | Yes |
| MSTEST0051 | Assert.Throws deve conter uma única instrução. | Informações | Yes |
| MSTEST0052 | Evite o uso explícito do DynamicDataSourceType. | Informações | Yes |
| MSTEST0053 | Evite parâmetros de formatação Assert. | Informações | Yes |
| MSTEST0054 | Utilize a propriedade CancellationToken. | Informações | Yes |
| MSTEST0055 | Não ignore o valor de retorno do método string. | Advertência | Não |
| MSTEST0056 | TestMethodAttribute deve definir corretamente o DisplayName. | Informações | Yes |
| MSTEST0057 | TestMethodAttribute deve propagar a informação de origem. | Advertência | Não |
| MSTEST0058 | Evite assertivas nos blocos de captura. | Informações | Não |
| MSTEST0059 | Use corretamente o atributo Parallelize. | Advertência | Não |
| MSTEST0060 | Duplicate TestMethodAttribute. | Advertência | Yes |
| MSTEST0061 | Usa o atributo OSCondition em vez de verificação em tempo de execução. | Informações | Yes |
| MSTEST0062 | Evite parâmetros de teste do tipo out/ref. | Advertência | Yes |
| MSTEST0063 | A classe de teste deve ter um construtor válido. | Advertência | Não |
* Escalado para Erro nos modos Recommended e All.
Cenários comuns
Validação da estrutura do teste
Certifique-se de que as suas classes, métodos e equipamentos de teste cumprem os requisitos do MSTest:
- MSTEST0002: Requisitos de layout da classe de teste (por exemplo, público, não estático).
- MSTEST0003: Requisitos de formato do método de teste (️⚠ elevado a Erro).
- MSTEST0030: Métodos com [TestMethod] devem estar numa [TestClass].
- MSTEST0063: Validação do construtor da classe de teste.
Métodos de ciclo de vida
Validar métodos de inicialização e limpeza:
- MSTEST0008: Validação TestInitialize.
- MSTEST0009: Validação do TestCleanup.
- MSTEST0010: Validação de ClassInitialize.
- MSTEST0011: Validação do ClassCleanup.
- MSTEST0012: Validação AssemblyInitialize.
- MSTEST0013: Validação do AssemblyCleanup.
- MSTEST0034: Definir ClassCleanupBehavior.EndOfClass.
- MSTEST0050: Validação global de equipamentos de teste.
Testes orientados por dados
Garantir que os atributos dos dados são usados corretamente:
- MSTEST0007: Os atributos dos dados devem estar nos métodos de teste.
- MSTEST0014: A validação de DataRow.
- MSTEST0018: Validação de DynamicData.
- MSTEST0042: Detetar linhas de dados duplicadas.
- MSTEST0052: Use o AutoDetect para o DynamicDataSourceType.
- MSTEST0062: Evite parâmetros out/ref.
Escrever melhores afirmações
Regras para o uso correto e eficaz da afirmação:
- MSTEST0017: Passar esperado/real na ordem correta.
- MSTEST0023: Não negues condições (usa diretamente o Assert.IsFalse).
- MSTEST0026: Evitar operadores nulos-condicionais nas asserções.
- MSTEST0032: Revê condições sempre verdadeiras.
- MSTEST0037: Use o método de afirmação mais adequado.
- MSTEST0038: Não uses AreSame com tipos de valor.
- MSTEST0039: Utilize Assert.ThrowsExactly (API mais recente).
- MSTEST0046: Prefira Assert em vez de StringAssert.
- MSTEST0051: Assert.Throws deve testar uma única instrução.
- MSTEST0053: Use interpolação de strings em vez de parâmetros de formato.
- MSTEST0058: Não coloque assertivas em blocos catch.
Utilização no TestContext
Uso correto do objeto TestContext:
- MSTEST0005: Validação da propriedade TestContext.
- MSTEST0024: Não armazene o TestContext em campos estáticos.
- MSTEST0048: Acesso restrito à propriedade nos fixtures.
- MSTEST0049: Tokens de cancelamento de fluxo do TestContext.
- MSTEST0054: Use a propriedade TestContext.CancellationToken.
Padrões assíncronos
Regras para código de teste assíncrono:
- MSTEST0040: Evite assertivas em métodos void assíncronos.
Configuração de teste
- MSTEST0031: Use atributos adequados (não System.ComponentModel.Description).
- MSTEST0035: Utilização do DeploymentItem.
- MSTEST0041: Os atributos de condição devem estar nas classes de teste.
- MSTEST0043: Os atributos de retentativa devem estar nos métodos de teste. (⚠️ elevado para Erro).
- MSTEST0055: Não ignore os valores de retorno de um método de string.
- MSTEST0056: Defina corretamente o DisplayName no TestMethodAttribute.
- MSTEST0057: Propagar informações da origem no atributo TestMethod personalizado.
- MSTEST0059: Não use simultaneamente Parallelize e DoNotParallelize.
- MSTEST0060: Evite duplicar o TestMethodAttribute.
- MSTEST0061: Use o atributo OSCondition para verificações de plataforma.