Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
| 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.