Visual Studio-Test-Explorer – häufig gestellte Fragen

Ermitteln dynamischer Tests

Der Test-Explorer erkennt meine dynamisch definierten Tests nicht. (Z. B. Theorien, benutzerdefinierte Adapter, benutzerdefinierte Merkmale, #ifdefs usw.) Wie kann ich diese Tests ermitteln?

Erstellen Sie das Projekt, um assemblybasierte Ermittlung auszuführen.

Bei der Testermittlung in Echtzeit handelt es sich um eine quellenbasierte Testermittlung. Sie kann keine Tests ermitteln, die z. B. Theorien, benutzerdefinierte Adapter und Merkmale oder #ifdef-Anweisungen verwenden, da diese zur Laufzeit definiert werden. Ein Build ist erforderlich, damit diese Tests korrekt gefunden werden können. In Visual Studio 2017 Version 15.6 und höher wird die assemblybasierte Ermittlung (die übliche Ermittlung) erst nach Builds ausgeführt. Mit dieser Einstellung wird festgelegt, dass die Testermittlung in Echtzeit während der Bearbeitung so viele Tests wie möglich findet und die assemblybasierte Ermittlung das Anzeigen von dynamisch definierten Tests nach einem Build ermöglicht. Testermittlung in Echtzeit verbessert die Reaktionsfähigkeit, ermöglicht Ihnen aber dennoch, vollständige und genaue Ergebnisse nach einem Build zu erhalten.

Pluszeichen (+) im Test-Explorer

Was bewirkt das Symbol „+“ (Pluszeichen), das in der obersten Zeile des Test-Explorers angezeigt wird?

Das Symbol „+“ (Pluszeichen) gibt an, dass mehr Tests nach einem Build ermittelt werden können, wenn assemblybasierte Ermittlung ausgeführt wird. Es wird angezeigt, wenn dynamisch definierte Tests im Projekt erkannt werden.

Plus symbol summary line

Testermittlung in Echtzeit

Tests werden jetzt im Test-Explorer angezeigt, während ich schreibe, ohne dass ich mein Projekt erstellen muss. Was hat sich geändert?

Dieses Feature wird als Testermittlung in Echtzeit bezeichnet. Dabei wird ein Roslyn-Analysetool verwendet, um Tests zu suchen und den Test-Explorer in Echtzeit aufzufüllen, ohne dass Sie Ihr Projekt erstellen müssen. Weitere Informationen zum Verhalten der Testermittlung bei dynamisch definierten Tests wie Theorien oder benutzerdefinierten Merkmalen finden Sie unter Dynamische Testermittlung.

Konformität der Testermittlung in Echtzeit

In welchen Sprachen und Testframeworks kann die Testermittlung in Echtzeit verwendet werden?

Die Testermittlung in Echtzeit funktioniert nur für die verwalteten Sprachen (C# und Visual Basic), da sie mit dem Roslyn-Compiler erstellt wird. Derzeit funktioniert Testermittlung in Echtzeit nur für xUnit-, NUnit- und MSTest-Framework.

Test-Explorer-Protokolle

Wie kann ich die Protokollierung für den Test-Explorer aktivieren?

Navigieren Sie zu Extras>Optionen>Test, und suchen Sie dort nach dem Protokollbereich.

UWP-Testermittlung

Warum werden meine Tests in UWP-Projekten erst ermittelt, wenn ich meine App bereitstelle?

UWP-Tests sind auf eine andere Runtime ausgerichtet, wenn die App bereitgestellt wird. Das bedeutet, dass Sie UWP-Projekte nicht nur erstellen, sondern auch bereitstellen müssen, wenn Sie genaue Tests suchen möchten.

Sortierung im Test-Explorer

Wie können in der Hierarchieansicht Testergebnisse sortiert werden?

In der Hierarchieansicht werden Tests alphabetisch und nicht anhand ihrer Ergebnisse sortiert. In der vorherigen Gruppierung nach Einstellungen wurden die Testergebnisse zunächst anhand ihrer Ergebnisse und dann alphabetisch sortiert. Sie können die Sortierung nach Ergebnissen weiterhin aktivieren, indem Sie im Test-Explorer mit der rechten Maustaste auf den Spaltenheader klicken, die Spalte „State“ (Zustand) aktivieren und dann auf den Spaltenheader „State“ klicken, um die Sortierung auf diese Spalte anzuwenden. Sie können Ihr Feedback zu diesem Design in diesem GitHub-Issue beitragen.

Hierarchieansicht des Test-Explorers

In der Hierarchieansicht finden Sie Symbole für „erfolgreich“, „fehlerhaft“, „übersprungen“ und „nicht ausgeführt“ neben Gruppierungen des übergeordneten Knotens. Was bedeuten diese Symbole?

Die Symbole neben den Gruppierungen „Projekt“, „Namespace“ und „Klasse“ spiegeln den Status der Tests innerhalb der Gruppierung wider. Siehe folgende Tabelle.

Test Explorer Hierarchy Icons

Suche nach Dateipfad

Im Test-Explorer-Suchfeld ist kein Dateipfadfilter mehr vorhanden.

Der Dateipfadfilter im Suchfeld Test-Explorer wurde in Visual Studio 2017 Version 15.7 entfernt. Dieses Feature wurde wenig genutzt, und der Test-Explorer kann Testmethoden durch Ausschluss dieses Features schneller abrufen. Wenn diese Änderung Ihren Entwicklungsablauf unterbricht, teilen Sie uns dies über die Entwicklercommunity mit.

Entfernen nicht dokumentierter Schnittstellen

Einige testbezogene APIs sind in Visual Studio 2019 nicht länger enthalten. Was hat sich geändert?

In Visual Studio 2019 werden einige Testfenster-APIs entfernt, die zuvor als öffentlich markiert waren, aber nie offiziell dokumentiert wurden. Diese wurden als frühe Warnung für die Erweiterungsverwaltung in Visual Studio 2017 als „veraltet“ gekennzeichnet. Nach unserer Erkenntnis wurden diese APIs nur durch sehr wenige Erweiterungen ermittelt und mit einer Abhängigkeit konfiguriert. Dies waren IGroupByProvider, IGroupByProvider<T>, KeyComparer, ISearchFilter, ISearchFilterToken, ISearchToken und SearchFilterTokenType. Wenn sich diese Änderung auf Ihre Erweiterung auswirkt, teilen Sie uns dies mit, indem Sie einen Fehler in der Entwicklercommunity melden.

NuGet-Verweis auf Testadapter

In Visual Studio 2017 Version 15.8 werden meine Tests ermittelt, aber nicht ausgeführt.

Alle Testprojekte müssen den entsprechenden NuGet-Verweis auf den .NET-Testadapters in ihrer CSPROJ-Datei enthalten. Andernfalls wird die folgende Testausgabe im Projekt angezeigt, wenn die Ermittlung durch eine Testadaptererweiterung nach einem Build gestartet wird oder wenn der Benutzer versucht, die ausgewählten Tests auszuführen:

Das Testprojekt{} verweist auf keinen NuGet-Adapter für .NET. Die Testermittlung oder -ausführung funktioniert für dieses Projekt möglicherweise nicht. Es wird empfohlen, in jedem .NET-Testprojekt in der Projektmappe auf NuGet-Testadapter zu verweisen.

Anstelle der Verwendung von Testadaptererweiterungen müssen Projekte NuGet-Pakete für Testadapter verwenden. Diese Anforderung führt zu einer erheblichen Leistungsverbesserung und verursacht weniger Probleme bei der Continuous Integration. Weitere Informationen zur Einstellung der .NET-Testadaptererweiterung finden Sie in den Anmerkungen zu dieser Version.

UWP-TestContainer wurde nicht gefunden

Meine UWP-Tests werden in Visual Studio 2017 Version 15.7 und höher nicht mehr ausgeführt.

In aktuellen UWP-Testprojekten wird für die Testplattform eine Buildeigenschaft festgelegt, die eine höhere Leistung bei der Ermittlung von Test-Apps ermöglicht. Wenn Sie über ein UWP-Testprojekt verfügen, das vor Visual Studio Version 15.7 initialisiert wurde, wird möglicherweise der folgende Fehler unter Ausgabe>Tests angezeigt:

System.AggregateException: One or more errors occurred. ---> System.InvalidOperationException: The following TestContainer was not found {} at Microsoft.VisualStudio.TestWindow.Controller.TestContainerProvider <GetTestContainerAsync>d__61.MoveNext()

So beheben Sie diesen Fehler

  • Aktualisieren Sie die Buildeigenschaft Ihres Testprojekts mit dem folgenden Code:
<UnitTestPlatformVersion Condition="'$(UnitTestPlatformVersion)' == ''">$(VisualStudioVersion)</UnitTestPlatformVersion>
  • Aktualisieren Sie die Version des TestPlatform SDK mit dem folgenden Code:
<SDKReference Include="TestPlatform.Universal, Version=$(UnitTestPlatformVersion)" />

Verwenden von Previewfunktionen

In Visual Studio 2019 können Sie die Previewfunktionen unter Extras > Optionen > Umgebung > Previewfunktionen aktivieren.