MSTEST0001: Explizites Aktivieren oder Deaktivieren von Tests
Eigenschaft | Wert |
---|---|
Regel-ID | MSTEST0001 |
Titel | Explizites Aktivieren oder Deaktivieren von Tests |
Kategorie | Leistung |
Fix führt oder führt nicht zur Unterbrechung | Nicht unterbrechend |
Standardmäßig aktiviert | Ja |
Standardschweregrad | Info |
Eingeführt in Version | 3.2.0 |
Gibt es eine Codekorrektur | No |
Ursache
Die Assembly ist nicht mit dem Attribut [assembly: Parallelize]
oder [assembly: DoNotParallelize]
gekennzeichnet.
Regelbeschreibung
Standardmäßig führt MSTest Tests innerhalb derselben Assembly sequenziell aus, was zu schwerwiegenden Leistungseinschränkungen führen kann. Es wird empfohlen, das Assemblyattribut [assembly: Parallelize]
zu aktivieren, um Tests parallel auszuführen, oder explizit das Attribut [assembly: DoNotParallelize]
auf Assemblyebene zu verwenden, falls die Assembly nicht parallelisierbar ist.
Die Standardkonfiguration von [assembly: Parallelize]
ist gleichbedeutend mit [assembly: Parallelize(Scope = ExecutionScope.ClassLevel)]
, was bedeutet, dass die Parallelisierung auf Klassenebene (nicht auf Methodenebene) festgelegt wird und so viele Threads wie möglich verwendet (abhängig von der internen Implementierung).
Behandeln von Verstößen
Um einen Verstoß gegen diese Regel zu beheben, fügen Sie das Attribut [assembly: Parallelize]
oder [assembly: DoNotParallelize]
hinzu. Es wird empfohlen, [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)]
für die beste Parallelisierung zu verwenden.
Wann sollten Warnungen unterdrückt werden?
Unterdrücken Sie keine Warnung dieser Regel. Viele Bibliotheken können von einer massiven Leistungssteigerung profitieren, wenn Parallelisierung aktiviert wird. Wenn die Testanwendung auf eine Weise entwickelt wird, die die Parallelisierung verhindert, hilft das explizite Festlegen des Attributs neuen Entwickler*innen, die Einschränkungen der Bibliothek zu verstehen.
Unterdrücken einer Warnung
Verstöße gegen diese Regel können nicht inline unterdrückt werden.
Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad in der Konfigurationsdatei auf none
fest.
[*.{cs,vb}]
dotnet_diagnostic.MSTEST0001.severity = none
Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.