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 | MSTEST0060 |
| Title | Vermeiden doppelter Testmethodenattribute |
| Kategorie | Usage |
| Die Behebung ist eingreifend oder nicht eingreifend | Non-breaking |
| Standardmäßig aktiviert | Yes |
| Voreingestellte Schwere | Warnung |
| wurde in Version eingeführt. | 4.1.0 |
| Gibt es eine Codekorrektur | Nein |
Ursache
Eine Testmethode verfügt über mehrere TestMethodAttribute Deklarationen.
Regelbeschreibung
Eine Testmethode sollte nur ein Attribut aufweisen, das aus TestMethodAttribute abgeleitet ist. Wenn mehrere Testmethodenattribute (wie [TestMethod] und [UITestMethod]) für dieselbe Methode vorhanden sind, wird nur ein Attribut verwendet (das erste Attribut, das von Reflection zurückgegeben wird), was verwirrend sein kann und zu unbeabsichtigter Testausführung führen kann.
[TestClass]
public class TestClass
{
[TestMethod]
[UITestMethod] // Violation
public void TestMethod1()
{
// Test code
}
}
Wie man Verstöße behebt
Entfernen Sie das doppelte Attribut, und behalten Sie nur das Attribut bei, das dem Zweck Ihrer Testmethode entspricht.
[TestClass]
public class TestClass
{
[TestMethod]
public void TestMethod1()
{
// Test code
}
}
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie keine Warnungen von dieser Regel. Wenn mehrere Testmethodenattribute vorhanden sind, werden mehrdeutige Testkonfigurationen erstellt, bei denen nur ein Attribut verwendet wird. Dies kann Zu Verwirrung darüber führen, welches Testverhalten tatsächlich angewendet wird.
Unterdrücken einer Warnung
Um nur eine einzelne Verletzung zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Regel zu deaktivieren und dann wieder zu aktivieren.
#pragma warning disable MSTEST0060
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0060
Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, setzen Sie dessen Schweregrad auf none in der Konfigurationsdatei fest.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0060.severity = none
Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.