Provedení testu s opětovným načtením za provozu

Testovací běhy v sadě Visual Studio zahrnují sestavení projektu pro aktualizaci binárních souborů na disku před použitím testovací platformy ke spuštění testů. Čas sestavení v sadě Visual Studio se může lišit v závislosti na druhu změn provedených v kódu. U větších řešení mohou být buildy tou nejdražší součástí testovacího běhu.

V prostředí Visual Studio 2022 a novějších verzích lze povolit spouštění testů s horkým načítáním, aby se urychlil běh testů přeskočením sestavení pro podporované scénáře.

Co je podporované?

  • Projekty C# a VB, které cílí na .NET 6.0 a novější
  • Testovací projekty vytvořené pro konfiguraci LADĚNÍ
  • Visual Studio 2022 a novější

Povolení provádění testů s rychlým načtením.

Tuto funkci můžete povolit v podokně Možnosti nástrojů>. Rozbalte sekci Všechna nastavení>Test a zaškrtněte políčko (Experimentální) Povolit znovu načítané testovací běhy za běhu pro testovací projekty C# a VB, které cílí na .NET 6 a vyšší.

Snímek obrazovky, který ukazuje, jak v sadě Visual Studio vybrat možnost Povolit znovu načítaná testovací spuštění

Tuto funkci můžete povolit v dialogovém okně Možnosti nástrojů>. Rozbalte sekci Test>Obecné a zaškrtněte políčko (Experimentální) Povolit běh testů s horkým načítáním pro projekty testů C# a VB, které jsou zaměřeny na .NET 6 a vyšší.

Snímek obrazovky ukazuje, jak vybrat možnost Povolit spuštění testů s automatickým aktualizováním v sadě Visual Studio.

Proč je experimentální?

Tato funkce poskytuje nový přístup k provádění testů, který mění široce používanou cestu pro ověřování kódu. Uživatelské prostředí pro tuto funkci se může změnit, protože budeme dál dostávat zpětnou vazbu. Z těchto důvodů je tato funkce aktuálně označena jako "experimentální."

Jak to funguje

Jakmile je tato možnost povolená, Průzkumník testů automaticky použije provádění testů s opětovným načtením za provozu, pokud je to možné. Pokud opětovné načítání za provozu není možné, vrátí se k pravidelnému chování sestavování a spouštění testů. Jako uživatel, který spouští testy, nemusíte provádět žádné změny pracovního postupu (to znamená, že budete dál upravovat kód a spouštět testy).

Pod kapotou používáme stejnou infrastrukturu pro úpravy za běhu, která je součástí nově vydaného prostředí Hot Reload pro úpravu C#/VB kódu během běhu, abychom určili provedené změny. Z tohoto důvodu znovu načítáme jen tehdy, když nejsou žádné "hrubé úpravy", v takovém případě se vrátíme k sestavení testů před jejich provedením. Další podrobnosti o podporovaných úpravách najdete v dokumentaci pro úpravy a pokračování.

O kolik rychlejší je provádění testů?

Při odhadu, kolik času vám tato funkce ušetří, existuje mnoho proměnných. Například:

  • Jak dlouho trvá sestavení projektu.
  • Jaký druh úprav byl proveden.
  • Jak velký je soubor, ve kterém byla úprava provedena.
  • Kde byla úprava provedena (pokud se jedná o projekt typu list nebo ne).

Vylepšení rychlosti nakonec přímo souvisí s časem sestavení, ke kterému by došlo v daném konkrétním testovacím běhu.

Poznámky

  • První testovací spuštění po povolení možnosti nebo otevření sady Visual Studio aktivuje sestavení projektu.

  • Soubory v editoru nemusí být při spuštění testů uloženy. Pokud chcete tyto problémy vyřešit a než se přihlásíte, ujistěte se, že provedete úplné sestavení (Ctrl+Shift+B).

  • Binární soubory na disku se neaktualizují, když dojde k hot reloadu.

  • Spuštění testu s opětovným načtením za provozu nefunguje s možnostmi Test>Run All Tests (Spustit všechny testy), Run All Tests in View (Spustit všechny testy v zobrazení) v Průzkumníku testů ani nefunguje se spuštěním všech testů z uzlu řešení v Průzkumníku řešení. Tato funkce s těmito příkazy nefunguje, protože v současné době zaručují sestavení celého řešení.

  • Když se spustí testy s nepodporovanými cílovými architekturami (nižším než .NET 6.0), dojde k sestavení projektu.

  • Pokud se zobrazí nějaké nekonzistence mezi obsahem na disku a průzkumníkem testů, vyzkoušejte sestavení řešení nebo projektu pomocí klávesové zkratky Ctrl + Shift + B a pak spusťte testy. Jakékoli explicitní sestavení nahradí výsledky testu rychlého načítání běžnými výsledky testů plného sestavení.

Známé problémy

Testování s dynamickým načtením se neprojeví v následujících scénářích:

  • Pokrytí kódu
  • Live Unit Testing
  • Profilování
  • Odstraňování chyb

Výpisy zásobníku nemusí být čitelné, pokud obsahují nečitelné tokeny. Tento problém tady sledujeme a plánujeme opravu v .NET 7.0.

  • Doporučeným alternativním řešením v tomto případě je sestavení projektu a opětovné spuštění testu.

Vaše zpětná vazba je důležitá

Aby byla tato experimentální funkce dokončená, vyžadujeme vaši zpětnou vazbu. Pokud máte návrh na vylepšení prostředí nebo narazíte na problémy, vezměte si chvíli a poskytněte svou zpětnou vazbu. Jenom s vaší zpětnou vazbou můžeme zajistit, aby se vyřešily kritické problémy a budoucí rozhodnutí se na základě vašeho vstupu upřednostňují.

Pokud chcete odeslat zpětnou vazbu, použijte mechanismus zpětné vazby sady Visual Studio.