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 | MSTEST0073 |
| Título | Preferir uma constante para a chave de recurso '[ResourceLock]' |
| Categoria | Uso |
| Correção é disruptiva ou não disruptiva | Inquebrável |
| Habilitado por padrão | Sim |
| Severidade padrão | Informações |
| introduzido na versão | 4.4.0 (versão prévia) |
| Há uma correção de código | Não |
Importante
ResourceLockAttribute é 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
Um [ResourceLock] atributo passa sua chave de recurso como um literal de cadeia de caracteres nua em vez de referenciar uma constante compartilhada.
Descrição da regra
[ResourceLock] corresponde aos testes pela igualdade exata da cadeia de caracteres que diferencia maiúsculas de minúsculas da chave de recurso. Um literal de cadeia de caracteres nua falha: um erro de digitação produz uma chave diferente, portanto, os testes conflitantes não são mais serializados e correm silenciosamente em vez de falhar com um erro de build. Fazer referência a uma constante compartilhada, como um WellKnownResources membro ou seu próprio const, torna o erro de compilação um erro de compilação e permite que o compilador imponha que cada teste em disputa no mesmo recurso use a mesma chave.
[ResourceLock("database")] // Violation: bare string literal.
[TestMethod]
public void ReadsSharedSchema() { }
Como corrigir violações
Faça referência a um WellKnownResources membro para o estado global do processo ou declare e referencie seu próprio const string.
private const string Database = "database";
[ResourceLock(Database)]
[TestMethod]
public void ReadsSharedSchema() { }
Quando suprimir avisos
É seguro suprimir esse aviso se você usar intencionalmente uma chave de recurso literal e tiver certeza de que nenhum outro teste no assembly precisa coordenar no mesmo recurso.
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 MSTEST0073
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0073
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.MSTEST0073.severity = none
Para obter mais informações, consulte Como suprimir avisos de análise de código.