Freigeben über


Testausführung mit "Hot Reload"

Testausführungen in Visual Studio umfassen das Erstellen des Projekts zum Aktualisieren der Binärdateien auf dem Datenträger, bevor Sie die Testplattform zum Ausführen Ihrer Tests verwenden. Die Buildzeit in Visual Studio kann je nach Art der am Code vorgenommenen Änderungen variieren. Bei größeren Lösungen können Builds der teuerste Teil der Testausführung sein. In Visual Studio 2022 und höher kann die Testausführung mit hot reload aktiviert werden, um die Testausführung zu beschleunigen, indem Builds für unterstützte Szenarien übersprungen werden.

Was wird unterstützt?

  • C#- und VB-Projekte für .NET 6.0 und höher
  • Testprojekte, die für die DEBUG-Konfiguration erstellt wurden
  • Visual Studio 2022 und höher

Testausführung mit Hot Reload aktivieren

Aktivieren Sie dieses Feature, indem Sie Test>Optionen>"(Experimentell) Hot-Reloaded-Testläufe für C#- und VB-Testprojekte für .NET 6 und höher aktivieren. Screenshot der Schaltfläche

Warum ist es Experimental?

Dies ist eine neue Methode der Testausführung, bei der wir einen weitverwendeten Pfad für die Überprüfung von Code ändern. Wir erwarten auch, dass sich die Benutzererfahrung bei diesem Feature ändert, da wir mehr Feedback von Benutzern erhalten. Aus diesen beiden Gründen haben wir dieses Feature derzeit als "experimentell" bezeichnet.

Funktionsweise

Sobald die Option aktiviert ist, verwendet Test-Explorer nach Möglichkeit automatisch die Testausführung mit hot reload. Wenn ein Hot Reload nicht möglich ist, wird auf das übliche Verfahren des Erstellens und Ausführens von Tests zurückgegriffen. Als Benutzer, der Tests ausführt, müssen Sie keine Änderungen am Workflow vornehmen (d. a. den Code weiter bearbeiten und Tests ausführen).

Unter der Haube verwenden wir dieselbe Edit and Continue-Infrastruktur , die in der neu veröffentlichten Hot Reload-Oberfläche zum Bearbeiten von C#/VB-Code zur Laufzeit vorhanden ist, um die vorgenommenen Änderungen zu bestimmen. Aus diesem Grund laden wir nur dann erneut, wenn es keine "unhöflichen Bearbeitungen" gibt. In diesem Fall fallen wir auf das Erstellen Ihrer Tests zurück, bevor sie ausgeführt werden. Weitere Informationen zu unterstützten Bearbeitungen finden Sie in der Dokumentation zum Bearbeiten und Fortsetzen

Wie viel schneller wird die Testausführung sein?

Es gibt viele Variablen, die beim Abschätzen, wie viel Zeit Ihnen diese Funktion sparen wird, eine Rolle spielen. Beispiel:

  • Wie lange dauert der Build-Prozess des Projekts.
  • Welche Art von Bearbeitung vorgenommen wurde.
  • Wie groß die Datei ist, wo die Bearbeitung vorgenommen wurde.
  • Wo die Bearbeitung vorgenommen wurde (wenn es sich um ein Blattprojekt handelt oder nicht).

Letztendlich hängen die Geschwindigkeitsverbesserungen direkt mit der Buildzeit zusammen, die in diesem konkreten Testlauf bestanden hätte.

Hinweise

  • Die erste Testausführung nach dem Aktivieren der Option oder dem Öffnen von Visual Studio führt zu einem Projektbuild.
  • Dateien im Editor werden möglicherweise nicht gespeichert, wenn Tests ausgeführt werden. Um diese Probleme zu beheben und bevor Sie einchecken, stellen Sie sicher, dass Sie einen vollständigen Build durchführen (STRG+UMSCHALT+B).
  • Die Binärdateien auf dem Datenträger werden nicht aktualisiert, wenn ein hot-reload-Test stattfindet.
  • Die Hot-Reloaded-Testausführung funktioniert nicht mit "Test>Alle Tests ausführen", "Alle Tests in Ansicht ausführen" im Test-Explorer und funktioniert auch nicht mit Alle Tests ausführen vom Lösungsknoten im Lösungs-Explorer. Das Feature funktioniert nicht mit diesen Befehlen, da sie derzeit das Erstellen der gesamten Lösung garantieren.
  • Wenn Tests mit nicht unterstützten Zielframeworks (niedriger als .NET 6.0) ausgeführt werden, wird ein Projekt gebaut.
  • Wenn Sie Inkonsistenzen zwischen dem, was auf dem Datenträger ist, und dem, was der Test Explorer anzeigt, bemerken, erwägen Sie bitte einen Projektmappen-/Projektbuild mit STRG+UMSCHALT+B und führen Sie dann die Tests aus. Jeder konkrete Build ersetzt die Ergebnisse des Hot Reload-Tests durch die regulären Voll-Build-Testergebnisse.

Bekannte Probleme

  • ** In den folgenden Szenarien tritt die Testausführung mit Hot Reload nicht auf:
    • Codeabdeckung
    • Live-Komponententests
    • Profilerstellung
    • Fehlersuche
  • Stapelablaufverfolgungen sind möglicherweise nicht lesbar, wenn nicht lesbare Tokens vorhanden sind. Dieses Problem wird hier nachverfolgt und ist für einen Fix in .NET 7.0 geplant.
    • Die empfohlene Problemumgehung in diesem Fall besteht darin, Ihr Projekt zu erstellen und den Test erneut auszuführen.

Ihr Feedback ist wichtig

Wie bereits erwähnt, benötigen wir Ihr Feedback, damit dieses experimentelle Feature abgeschlossen ist. Wenn Sie einen Vorschlag für die Art und Weise haben, wie die Erfahrung sein soll, oder probleme auftreten, nehmen Sie sich bitte einen Moment Zeit, um Uns Probleme zu melden. Nur mit Ihrem Feedback können wir sicherstellen, dass kritische Probleme gelöst werden, und zukünftige Entscheidungen werden basierend auf Ihrer Eingabe priorisiert.

Um uns zu erreichen, verwenden Sie bitte den Visual Studio-Feedbackmechanismus.