MSTEST0073: Prefere uma constante para a chave de recurso '[ResourceLock]'

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.

Consulte também