Testausführung mit Hot Reload

Für Testläufe in Visual Studio müssen Sie das Projekt erstellen, um die Binärdateien auf dem Datenträger zu aktualisieren, bevor Sie Ihre Tests mithilfe der Testplattform ausführen. Die Buildzeit in Visual Studio kann je nach Art der am Code vorgenommenen Änderungen variieren. Bei größeren Projektmappen können Builds der aufwändigste Teil des Testlaufs sein. Ab Visual Studio 2022 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
  • Für die DEBUG-Konfiguration erstellte Testprojekte
  • Visual Studio 2022 und höher

Aktivieren der Testausführung mit Hot Reload

Aktivieren Sie dieses Feature durch Wählen von Test>Optionen>(Experimentell) Enable Hot Reloaded Test Runs for C# and VB test projects targeting .NET 6 and higher (Testläufe mit Hot Reload für C#- und VB-Testprojekte für .NET 6 und höher aktivieren). Screenshot of the Enable Hot Reloaded Test Runs button on the Visual Studio Test Options page. When this is selected, tests execution will use hot reload for supported scenarios

Warum experimentell?

Dies ist eine neue Art der Testausführung, bei der wir eine weit verbreitete Methode zur Überprüfung von Code ändern. Wir gehen auch davon aus, dass sich die Benutzererfahrung rund um dieses Feature ändern wird, sobald wir mehr Feedback von Benutzern erhalten. Aus diesen beiden Gründen wird dieses Feature derzeit als „experimentell“ bezeichnet.

Funktionsweise

Nach Aktivierung dieser Option arbeitet der Test-Explorer nach Möglichkeit automatisch die Testausführung mit Hot Reload. Wenn Hot Reload nicht möglich ist, greift das System auf das normale Verhalten beim Erstellen und Ausführen von Tests zurück. Als testender Benutzer müssen Sie Ihren Workflow nicht ändern (d. h. Sie können weiterhin Code bearbeiten und Tests durchführen).

Im Grunde genommen verwenden wir dieselbe Infrastruktur für das Bearbeiten und Fortfahren, die auch in der neuen Version von Hot Reload zum Bearbeiten von C#/VB-Code zur Laufzeit geboten wird, um die vorgenommenen Änderungen zu ermitteln. Aus diesem Grund erfolgt Hot Reload nur dann, wenn es keine „nicht unterstützten Bearbeitungen“ gibt. In diesem Fall werden die Tests vor der Ausführung neu erstellt. Weitere Informationen zu unterstützten Bearbeitungen finden Sie in der Dokumentation zum Bearbeiten und Fortfahren.

Wie viel schneller wird die Testausführung sein?

Bei der Einschätzung, wie viel Zeit Sie mit diesem Feature speichern können, spielen viele Variablen eine Rolle. Beispiel:

  • Dauer der Erstellung des Projektbuilds
  • Art der erfolgten Bearbeitung
  • Größe der Datei, in der die Bearbeitung erfolgt ist
  • Ort, an dem die Bearbeitung erfolgt ist (wenn es sich um ein Blattprojekt handelt oder nicht)

Letztlich stehen die Geschwindigkeitsvorteile in direktem Zusammenhang mit der Buildzeit, die bei diesem speziellen Testlauf angefallen wäre.

Hinweise

  • Der erste Testlauf nach Aktivieren der Option oder Öffnen von Visual Studio führt zu einem Projektbuild.
  • Dateien im Editor werden möglicherweise nicht gespeichert, wenn Tests ausgeführt werden. Vergewissern Sie sich, dass Sie einen vollständigen Build erstellen, indem Sie STRG+UMSCHALT+B drücken, um diese Abweichungen aufzulösen, bevor Sie die Dateien einchecken.
  • Die Binärdateien auf dem Datenträger werden nicht aktualisiert, wenn ein Test mit Hot Reload durchgeführt wird.
  • Die Testausführung mit Hot Reload funktioniert nicht mit Test>Alle Tests ausführen, Alle Tests in der Ansicht ausführen im Test-Explorer und auch nicht mit Alle Tests ausführen über den Projektmappenknoten im Projektmappen-Explorer. Das Feature funktioniert nicht mit diesen Befehlen, da sie derzeit die Erstellung der gesamten Projektmappe garantieren.
  • Wenn Tests mit nicht unterstützten Zielframeworks (vor .NET 6.0) ausgeführt werden, wird ein Projektbuild erstellt.
  • Wenn Inkonsistenzen zwischen dem Datenträgerinhalt und der Anzeige im Test-Explorer erkennbar sind, sollten Sie einen Projektmappen-/Projektbuild durch Drücken von STRG+UMSCHALT+B in Betracht ziehen und dann Tests ausführen. Jeder explizite Build ersetzt die Ergebnisse des Tests mit Hot Reload durch die regulären Testergebnisse des vollständigen Builds.

Bekannte Probleme

  • Die Testausführung mit Hot Reload erfolgt nicht in den folgenden Szenarien:
    • Code Coverage
    • Live Unit Testing
    • Profilerstellung
    • Debuggen
  • Stapelüberwachungen sind möglicherweise nicht lesbar, wenn nicht lesbare Token vorhanden sind. Dieses Problem wird hier verfolgt und voraussichtlich in .NET 7.0 behoben sein.
    • Die empfohlene Problemumgehung besteht in diesem Fall darin, den Build für Ihr Projekt zu erstellen und den Test erneut auszuführen.

Ihr Feedback ist wichtig

Wie bereits erwähnt, benötigen wir Ihr Feedback, um dieses experimentelle Feature zu vervollständigen. Wenn Sie einen Vorschlag haben, wie die Erfahrung mit dem Feature sein sollte, oder auf Probleme stoßen, 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 und künftige Entscheidungen auf Grundlage Ihrer Rückmeldungen priorisiert werden.

Um uns zu erreichen, nutzen Sie den Feedbackmechanismus von Visual Studio.