Sdílet prostřednictvím


Testování provádění pomocí Opětovné načítání 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í můžou být sestavení nejdražší součástí testovacího běhu. V sadě Visual Studio 2022 a novějších je možné povolit spouštění testů s opětovným načítáním za provozu, aby se urychlila spouštění 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 vyšší
  • Testování projektů vytvořených pro konfiguraci LADĚNÍ
  • Visual Studio 2022 a novější

Povolení provádění testů pomocí Opětovné načítání za provozu

Tuto funkci povolte tak, že zvolíte Možnosti> testu>(experimentální) Povolit Opětovné načítání za provozu ed testovací běhy pro projekty testů C# a VB, které cílí na .NET 6 a vyšší. 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

Proč je experimentální?

Jedná se o nový způsob provádění testů, kdy změníme široce používanou cestu ověřování kódu. Očekáváme také, že uživatelské prostředí kolem této funkce se změní, protože od uživatelů dostáváme další zpětnou vazbu. Z těchto dvou důvodů jsme tuto funkci aktuálně označili jako experimentální.

Jak to funguje

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

Pod kapotou používáme stejnou infrastrukturu pro úpravy a pokračování, která existuje v nově vydaném prostředí Opětovné načítání za provozu pro úpravy kódu C#/VB za běhu, abychom zjistili 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í.

Jak mnohem rychleji bude provádění testu?

Při odhadu, kolik času vám tato funkce ušetří, existuje mnoho proměnných. Pří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 budou nakonec přímo souviset s časem sestavení, ke kterému by došlo v daném konkrétním testovacím běhu.

Notes

  • První testovací spuštění po povolení možnosti nebo otevření sady Visual Studio způsobí 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 opětovnému načtení testu za provozu.
  • Spuštění testu opětovného načítání za provozu nefunguje s příkazem Test>Run All Tests (Spustit všechny testy), 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ík ř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 mezi obsahem disku a průzkumníkem testů zobrazí nějaké nekonzistence, zvažte řešení nebo sestavení projektu pomocí Ctrl+Shift+B a pak spusťte testy. Jakékoli explicitní sestavení nahradí výsledky testu opětovného načítání za provozu běžnými výsledky testů úplného sestavení.

Známé problémy

  • Spuštění testu s opětovným načtením za provozu se neprojeví v následujících scénářích:
    • Pokrytí kódu
    • Live Unit Testing
    • Profilace
    • Ladění
  • Trasování zásobníku nemusí být čitelné s přítomností nečitelných tokenů. 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á

Jak jsme uvedli dříve, aby byla tato experimentální funkce dokončená, vyžadujeme vaši zpětnou vazbu. Pokud máte návrh na to, jak by prostředí mělo být nebo narazíte na případné problémy, chvíli nám nahlašte problémy. 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 nás chcete kontaktovat, použijte mechanismus zpětné vazby sady Visual Studio.