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 | Value |
|---|---|
| ID da regra | MSTEST0078 |
| Título | Os argumentos '[DependsOn]' devem ser válidos |
| Categoria | Uso |
| Correção é disruptiva ou não disruptiva | 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 | Não |
Importante
As dependências de teste são planejadas para o MSTest 4.4 e estão disponíveis apenas em builds de visualização até que o MSTest 4.4.0 seja lançado.
Cause
Um [DependsOn] atributo faz referência a um teste por nome e a referência tem um problema que a estrutura de teste pode decidir somente em tempo de execução, como um destino que não existe.
Descrição da regra
A estrutura de teste trata deliberadamente um [DependsOn] destino que não corresponde a nenhum teste como um aviso não fatal em tempo de execução, para que --filter as execuções de teste único continuem funcionando. Isso significa que um erro de digitação ou uma renomeação descarta silenciosamente a ordem declarada em vez de falhar no build. Este analisador relata os problemas que podem ser decididos no momento da compilação:
- O método referenciado não existe no tipo referenciado.
- O membro referenciado não é um método de teste, portanto, a dependência é ignorada.
- O tipo referenciado não é uma classe de teste, portanto, a dependência é ignorada.
- O tipo referenciado é declarado em outro assembly (as dependências são resolvidas em uma única fonte de teste).
- O tipo referenciado é abstrato, portanto, seus testes são executados em cada classe de teste derivada.
- O atributo faz com que um teste dependa de si mesmo, que é um ciclo de dependência que falha em tempo de execução.
- O atributo participa de um ciclo de dependência visível na compilação, que falha em todos os testes do ciclo em tempo de execução.
- O atributo é aplicado quando não tem efeito, porque o destino do atributo não é um método de teste ou não executa nenhum teste.
[TestMethod]
public void CreateCart() { }
[TestMethod, DependsOn("CreatCart")] // Violation: typo, no such member
public void AddItem() { }
Como corrigir violações
Corrija o erro de digitação ou renomeie e use nameof para que o compilador mantenha a referência em sincronia quando você renomear o destino.
[TestMethod]
public void CreateCart() { }
[TestMethod, DependsOn(nameof(CreateCart))]
public void AddItem() { }
Quando suprimir avisos
Não suprima avisos dessa regra. Cada caso relatado por esse analisador falha no teste dependente em tempo de execução, como uma auto-referência ou um ciclo, ou descarta silenciosamente a ordenação declarada, como um erro de digitação ou uma referência a um membro que não é de teste.
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 MSTEST0078
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0078
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.MSTEST0078.severity = none
Para obter mais informações, consulte Como suprimir avisos de análise de código.