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 | MSTEST0057 |
| Title | Verteilen von Quellinformationen in benutzerdefinierten Testmethodenattributen |
| Kategorie | Usage |
| Die Behebung ist eingreifend oder nicht eingreifend | Non-breaking |
| Standardmäßig aktiviert | Yes |
| Voreingestellte Schwere | Warnung |
| wurde in Version eingeführt. | 4.0.0 |
| Gibt es eine Codekorrektur | Yes |
Ursache
Eine benutzerdefinierte TestMethodAttribute Klasse verteilt keine Aufruferinformationen an den Basisklassenkonstruktor.
Regelbeschreibung
Beim Erstellen von benutzerdefinierten Testmethodenattributen, die von TestMethodAttribute abgeleitet werden, sollten Sie Quellinformationen mithilfe von Aufruferinformationsattributen propagieren. Auf diese Weise kann MSTest die Quelldatei und die Zeilennummer für Testmethoden korrekt nachverfolgen, diagnosen, Testergebnisberichterstattung und Test-Explorer-Verhalten verbessern.
public class MyTestMethodAttribute : TestMethodAttribute
{
public MyTestMethodAttribute() // Violation
: base()
{
}
}
Wie man Verstöße behebt
Fügen Sie dem Konstruktor die Parameter CallerFilePath und CallerLineNumber hinzu und übergeben Sie sie an die Basisklasse.
using System.Runtime.CompilerServices;
public class MyTestMethodAttribute : TestMethodAttribute
{
public MyTestMethodAttribute(
[CallerFilePath] string callerFilePath = "",
[CallerLineNumber] int callerLineNumber = -1)
: base(callerFilePath, callerLineNumber)
{
}
}
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie keine Warnungen von dieser Regel. Das Verteilen von Quellinformationen ist für die ordnungsgemäße Berichterstellung und Diagnose von Tests unerlässlich.
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 MSTEST0057
// The code that's violating the rule is on this line.
#pragma warning restore MSTEST0057
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.MSTEST0057.severity = none
Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.