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 | MSTEST0073 |
| Título | Prefira uma constante para a chave de recurso '[ResourceLock]' |
| Category | Usage |
| A correção é invasiva ou não invasiva | Inquebrável |
| Ativado por padrão | Sim |
| Severidade padrão | Informações |
| Introduzido na versão | 4.4.0 (pré-visualização) |
| Existe uma correção de código | Não |
Importante
ResourceLockAttribute 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.
Motivo
Um [ResourceLock] atributo passa a sua chave de recurso como um literal de string nua em vez de referenciar uma constante partilhada.
Descrição da regra
[ResourceLock] Corresponde aos testes pela igualdade exata e sensível a maiúsculos de caso da cadeia da chave de recurso. Uma string nua falha literalmente aberta: um erro tipográfico produz uma chave diferente, por isso os testes em conflito deixam de ser serializados e correm silenciosamente em vez de falharem com um erro de compilação. Referenciar uma constante partilhada, como um WellKnownResources membro ou o seu próprio const, torna erros de digitação um erro de compilação e permite ao compilador impor que todos os testes que contêm no mesmo recurso usam 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 processo-global, ou declare e faça referência ao seu próprio const string.
private const string Database = "database";
[ResourceLock(Database)]
[TestMethod]
public void ReadsSharedSchema() { }
Quando suprimir avisos
É seguro suprimir este aviso se usares intencionalmente uma chave de recurso literal e estiveres confiante de que nenhum outro teste na assembleia precisa de se coordenar no mesmo recurso.
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 MSTEST0073
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0073
Para desabilitar a regra de um arquivo, pasta ou projeto, defina sua gravidade 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.