Visual Studio Test Explorer – Häufig gestellte Fragen (FAQ)
Dynamische Testentdeckung
Der Test-Explorer erkennt meine dynamisch definierten Tests nicht. (z. B. Theorien, benutzerdefinierte Adapter und Merkmale und „#ifdef“-Anweisungen) Wie kann ich sicherstellen, dass diese Tests entdeckt werden?
Erstellen Sie das Projekt, um assemblybasierte Ermittlung auszuführen.
Echtzeit-Testermittlung ist quellbasierte Testermittlung. Es können keine Tests gefunden werden, die Theorien, benutzerdefinierte Adapter, benutzerdefinierte Eigenschaften, #ifdef
Anweisungen und mehr verwenden, da sie zur Laufzeit definiert sind. 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 (übliche Ermittlung) erst nach Builds ausgeführt. Diese Einstellung bedeutet, dass die Testermittlung in Echtzeit während der Bearbeitung so viele Tests wie möglich findet. Die Assembly-basierte Ermittlung ermöglicht es, dynamisch definierte Tests nach einem Build anzuzeigen.
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 bedeutet das Pluszeichen, das in der obersten Zeile des Test-Explorers angezeigt wird?
Das Pluszeichen (+) gibt an, dass mehr Tests nach einem Build ermittelt werden könnten, wenn die assemblybasierte Ermittlung ausgeführt wird. Dieses Symbol wird angezeigt, wenn dynamisch definierte Tests in Ihrem Projekt erkannt werden.
Echtzeit-Testentdeckung
Tests werden jetzt während der Eingabe im Test-Explorer angezeigt, ohne dass ich mein Projekt erstellen muss. Was hat sich geändert?
Dieses Feature wird als Testermittlung in Echtzeit bezeichnet. Es verwendet einen Roslyn-Analyzer, um Tests zu finden und Test-Explorer in Echtzeit aufzufüllen, ohne dass Sie Ihr Projekt erstellen müssen. Weitere Informationen zum Testermittlungsverhalten für dynamisch definierte Tests wie Theorien oder benutzerdefinierte Eigenschaften finden Sie unter dynamischen Testermittlung weiter oben in diesem Artikel.
Kompatibilität für Echtzeit-Testentdeckung
Welche Sprachen und Testframeworks können die Echtzeit-Testermittlung verwenden?
Echtzeit-Testermittlung funktioniert nur für die verwalteten Sprachen (C# und Visual Basic), da sie über den Roslyn-Compiler erstellt wird. Zurzeit funktioniert die Echtzeit-Testentdeckung nur für die xUnit-, NUnit- und MSTest-Frameworks.
Test-Explorer-Protokolle
Wie kann ich Protokolle für den Test-Explorer aktivieren?
Navigieren Sie zu Extras>Optionen>Test, und suchen Sie dort nach dem Protokollbereich.
UWP-Testentdeckung
Warum werden meine Tests in UWP-Projekten erst entdeckt, wenn ich meine App bereitgestellt habe?
UWP-Tests (Universelle Windows-Plattform) zielen auf eine andere Laufzeit ab, wenn die App bereitgestellt wird. Um Tests für UWP-Projekte genau zu finden, müssen Sie nicht nur Ihr Projekt erstellen, sondern auch bereitstellen.
Testen der Explorer-Sortierung
Wie funktioniert das Sortieren von Testergebnissen in der Hierarchieansicht?
Die Hierarchieansicht sortiert Tests alphabetisch, nicht nach Ergebnis. Vorherige Gruppierungseinstellungen sortierten Testergebnisse nach Ergebnis und dann alphabetisch. Sie können die Sortierung nach Ergebnis weiterhin aktivieren, indem Sie im Test-Explorer mit der rechten Maustaste auf die Spaltenüberschrift klicken, die Status Spalte aktivieren und dann die Spaltenüberschrift der Status Spalte auswählen, um die Sortierung auf diese Spalte anzuwenden. Sie können Ihr Feedback zu diesem Design in diesem GitHub-Issue beitragen.
Test Explorer-Hierarchieansicht
In der Hierarchieansicht finden Sie neben Gruppierungen des übergeordneten Knotens Symbole für „bestanden“, „fehlerhaft“, „übersprungen“ und „nicht ausgeführt“. Was bedeuten diese Symbole?
Die Symbole neben der Project, Namespaceund Klasse Gruppierungen zeigen den Status der Tests innerhalb der jeweiligen Gruppierungen an. Weitere Informationen finden Sie in der folgenden Tabelle.
Suchen nach Dateipfad
Warum ist im Suchfeld "Test-Explorer" kein Dateipfadfilter mehr vorhanden?
Der Dateipfadfilter im Suchfeld "Test-Explorer" wurde in Visual Studio 2017, Version 15.7, entfernt. Dieses Feature hatte eine geringe Auslastung, und Der Test-Explorer kann Testmethoden schneller abrufen, indem es ausgelassen wird. Wenn diese Änderung Ihren Entwicklungsablauf unterbricht, teilen Sie uns mit, indem Sie Feedback zu Developer Communityübermitteln.
Entfernen nicht dokumentierter Schnittstellen
Einige testbezogene APIs sind in Visual Studio 2019 nicht mehr vorhanden. Was hat sich geändert?
In Visual Studio 2019 werden einige Testfenster-APIs, die zuvor als öffentlich gekennzeichnet, aber nie offiziell dokumentiert wurden, entfernt. Sie wurden in Visual Studio 2017 als veraltet markiert, um Erweiterungsbetreuern eine frühzeitige Warnung zu geben. Zu unserem Wissen fanden sehr wenige Erweiterungen diese APIs und nahmen eine Abhängigkeit davon. Sie umfassen IGroupByProvider
, IGroupByProvider<T>
, KeyComparer
, ISearchFilter
, ISearchFilterToken
, ISearchToken
und SearchFilterTokenType
.
Wenn sich diese Änderung auf Ihre Erweiterung auswirkt, teilen Sie es uns mit, indem Sie ein Problem in der Developer Communitymelden.
NuGet-Verweis auf Testadapter
Warum werden meine Tests in Visual Studio 2017, Version 15.8, nicht ausgeführt, obwohl sie entdeckt wurden?
Alle Testprojekte müssen ihren .NET-Testadapter NuGet-Verweis in der CSPROJ-Datei enthalten. Andernfalls wird die folgende Testausgabe im Projekt angezeigt, wenn die Ermittlung durch eine Testadaptererweiterung nach einem Build gestartet wird, oder wenn Sie versuchen, die ausgewählten Tests auszuführen:
Testprojekt {} referenziert keinen .NET NuGet-Adapter. Die Ermittlung oder Ausführung von Tests funktioniert für dieses Projekt möglicherweise nicht. Es wird empfohlen, in jedem .NET-Testprojekt in der Projektmappe auf NuGet-Testadapter zu verweisen.
Anstelle von Testadaptererweiterungen müssen Projekte Testadapter-NuGet-Pakete verwenden. Diese Anforderung verbessert die Leistung erheblich und verursacht weniger Probleme mit der kontinuierlichen Integration. Weitere Informationen zur Einstellung der .NET-Testadaptererweiterung finden Sie in den Versionshinweisen.
UWP TestContainer nicht gefunden
Warum werden meine UWP-Tests in Visual Studio 2017, Version 15.7 und höher, nicht mehr ausgeführt?
Aktuelle UWP-Testprojekte geben eine Buildeigenschaft an, die eine bessere Leistung für die Identifizierung von Test-Apps ermöglicht. Wenn Sie über ein UWP-Testprojekt verfügen, das vor Visual Studio, Version 15.7 initialisiert wurde, wird unter Ausgabe>Tests möglicherweise der folgende Fehler angezeigt:
System.AggregateException: Mindestens ein Fehler ist aufgetreten. ---> 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 für Ihre Testprojekte mithilfe des folgenden Codes:
<UnitTestPlatformVersion Condition="'$(UnitTestPlatformVersion)' == ''">$(VisualStudioVersion)</UnitTestPlatformVersion>
Aktualisieren Sie die TestPlatform SDK-Version mithilfe des folgenden Codes:
<SDKReference Include="TestPlatform.Universal, Version=$(UnitTestPlatformVersion)" />
Vorschaufunktionen
Wie kann ich Vorschaufeatures in Visual Studio 2019 verwenden?
In Visual Studio 2019 können Sie sich für Previewfunktionen unter Extras>Optionen>Umgebung>Previewfunktionen aktivieren.