Sprache
Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
| Eigentum | Wert |
|---|---|
| Regel-ID | MSTEST0086 |
| Title | Entfernen des Attributs für redundante Testmethoden |
| Kategorie | Usage |
| Fix führt oder führt nicht zur Unterbrechung | Non-breaking |
| Standardmäßig aktiviert | Yes |
| Voreingestellte Schwere | Info |
| wurde in Version eingeführt. | 4.5.0 |
| Gibt es eine Codekorrektur | Ja, nur für C# |
Ursache
Eine Testmethode deklariert ein MSTest-Attribut, dessen effektives Verhalten bereits durch die enthaltende Testklasse oder eine Basistestklasse bereitgestellt wird.
Regelbeschreibung
Doppelte Attribute machen die effektive Testrichtlinie schwieriger zu verstehen und zu verwalten. Die Regel meldet Bedingungen auf Methodenebene, Wiederholungseinstellungen, Isolationseinstellungen, Metadaten, Bereitstellungselemente oder Abhängigkeiten nur, wenn die Konfiguration auf Klassenebene bereits ein gleichwertiges oder restriktives Verhalten bereitstellt.
Die Regel umfasst OSCondition, ArchitectureCondition, CICondition, ResourceLock, TestCategory, DoNotParallelize, Ignore, TestProperty, Retry, DeploymentItem und DependsOn.
Für OSCondition, ArchitectureCondition, CICondition, Retry, Ignore und DependsOn meldet die Regel redundante Attribute nur für Methoden, die in abgeschlossenen Testklassen deklariert sind. Diese Attribute auf Klassenebene werden nicht geerbt, sodass das Entfernen eines Attributs auf Methodenebene aus einer nicht versiegelten Klasse ändern könnte, wie ein geerbter Test in einer abgeleiteten Klasse ausgeführt wird.
Bei DoNotParallelize, ResourceLock, TestCategory, TestProperty und DeploymentItem berücksichtigt die Regel auch Attribute für Basisklassen. Die Regel meldet ExecutableCondition, MemberCondition oder benutzerdefinierte Attribute nicht.
[TestClass, DoNotParallelize]
public class Tests
{
[TestMethod, DoNotParallelize] // Violation
public void Test() { }
}
Wie man Verstöße behebt
Entfernen Sie das redundante Attribut auf Methodenebene. Behalten Sie ein Attribut für die Methode bei, wenn sie das Verhalten auf Klassenebene ändert oder einschränkt.
[TestClass, DoNotParallelize]
public class Tests
{
[TestMethod] public void Test() { }
}
Ein C#-Codekorrektur entfernt das redundante Attribut. Visual Basic meldet die Diagnose, stellt aber keine automatische Korrektur bereit.
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie die Regel, wenn das doppelte Attribut absichtlich eine lokale Richtlinie dokumentiert und dieser Dokumentationswert die Wartungskosten überwiegt.
Unterdrücken einer Warnung
#pragma warning disable MSTEST0086
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0086
Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad auf none in der Konfigurationsdatei fest.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0086.severity = none
Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.