Freigeben über


MSTEST0057: Verteilen von Quellinformationen in benutzerdefinierten Testmethodenattributen

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.