MSTEST0073 : préférer une constante pour la clé de ressource « [ResourceLock] »

Propriété Valeur
Identificateur de la règle MSTEST0073
Titre Préférer une constante pour la clé de ressource « [ResourceLock] »
Category Usage
Le correctif a un effet disruptif ou non disruptif Non-breaking
Activé par défaut Yes
Sévérité par défaut Informations
Introduit dans la version 4.4.0 (préversion)
Existe-t-il une correction de code No

Important

ResourceLockAttribute est prévu pour MSTest 4.4 et est disponible uniquement dans les versions préliminaires jusqu’à la publication de MSTest 4.4.0.

Cause

Un [ResourceLock] attribut transmet sa clé de ressource en tant que littéral de chaîne nue au lieu de référencer une constante partagée.

Description de la règle

[ResourceLock] correspond aux tests par égalité exacte et sensible à la casse de la clé de ressource. Un littéral de chaîne nue échoue : une faute de frappe produit une clé différente, de sorte que les tests en conflit ne sont plus sérialisés et ne sont plus en mode silencieux au lieu d’échouer avec une erreur de build. Le référencement d’une constante partagée, telle qu’un WellKnownResources membre ou votre propre const, génère une erreur de compilation et permet au compilateur d’appliquer que chaque test en cours sur la même ressource utilise la même clé.

[ResourceLock("database")] // Violation: bare string literal.
[TestMethod]
public void ReadsSharedSchema() { }

Comment corriger les violations

Référencez un membre pour l’état WellKnownResources global du processus, ou déclarez et référencez votre propre const stringmembre.

private const string Database = "database";

[ResourceLock(Database)]
[TestMethod]
public void ReadsSharedSchema() { }

Quand supprimer les avertissements

Il est sûr de supprimer cet avertissement si vous utilisez intentionnellement une clé de ressource littérale et que vous n’êtes certain qu’aucun autre test dans l’assembly n’a besoin de coordonner sur la même ressource.

Supprimer un avertissement

Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.

#pragma warning disable MSTEST0073
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0073

Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none dans le fichier de configuration.

[*.{cs,vb}]
dotnet_diagnostic.MSTEST0073.severity = none

Pour plus d’informations, consultez Comment supprimer les avertissements d’analyse du code.

Voir aussi