Sdílet prostřednictvím


Přehled testovacích platforem pro technologie .NET

V technologie .NET jsou testovací architektura a testovací platforma různé komponenty, které spolupracují na zjišťování a spouštění testů.

  • Testovací architektura definuje testovací model, pro který píšete, například MSTest, NUnit, xUnit.net nebo TUnit.
  • Testovací platforma spouští testy, integruje se s integrovanými vývojovými prostředími a rozhraním příkazového řádku a poskytuje sdílené body rozšíření.

Můžete si vybrat mezi dvěma testovacími platformami:

  • VSTest
  • Microsoft.Testing.Platform (MTP)

Návod

Pro nejjednodušší nastavení zvolte jednu platformu pro úložiště a nakonfigurujte testovací projekty, CI a nástroje konzistentně pro danou platformu. Nekombinujte projekty testů založené na VSTest a Microsoft.Testing.Platform technologie .NET ve stejném řešení nebo spusťte konfiguraci, protože tento scénář není podporovaný. Pokud také spouštíte testy, které nejsou technologie .NET, které jsou závislé na VSTestu (například C++ nebo JavaScript), spusťte tyto testy v samostatných konfiguracích od testů založených na MTP technologie .NET.

Jak zvolit platformu

K rychlému výběru použijte následující scénáře.

Případ použití Zvolit Proč
Potřebujete scénáře provádění testů pro Native AOT nebo oříznutí. Microsoft.Testing.Platform MTP podporuje tyto moderní scénáře nasazení, zatímco VSTest ne.
Vytváříte zabalené projekty testů WinUI nebo UPW. VSTest MTP v současné době nepodporuje tyto typy projektů.
Potřebujete kombinovat testy technologie .NET a adaptéry testů, které nejsou technologie .NET (například adaptéry JavaScriptu nebo C++). VSTest VSTest podporuje scénáře se smíšenými jazyky, zatímco MTP je technologie .NET specifické.
Chcete, aby se testovací projekty chovaly jako běžné spustitelné soubory (, přímé spuštění spustitelného souboru, , a F5 toky spouštění projektu). Microsoft.Testing.Platform MTP je spustitelný jako první, takže testovací aplikace běží jako standardní technologie .NET aplikace v místních pracovních postupech a pracovních postupech CI.
Spoléháte na dlouhotrvající integrace napříč stávajícími nástroji. VSTest VSTest má nejdelší záznam sledování kompatibility napříč stávajícími produkty, úlohami a kanály. Podpora MTP roste v ekosystému, ale některé integrace mohou zaostávat za VSTestem.
Dáváte přednost striktnímu výchozímu nastavení a explicitnímu chování. Microsoft.Testing.Platform MTP upřednostňuje deterministické spouštění s lehkým modelem rozšíření na vyžádání a registrací během sestavení. Může například selhat, když se nespustí žádné testy, sníží proměnlivost závislá na prostředí a umožní zakázat jednotlivá rozšíření pro každé prostředí.
Dáváte přednost měkčím a široce zpětně kompatibilním výchozím nastavením. VSTest Obě platformy se starají o zpětnou kompatibilitu. VSTest upřednostňuje výchozí hodnoty orientované na kompatibilitu pro různé existující sady nástrojů, zatímco MTP poskytuje zpětnou kompatibilitu v rámci vlastního modelu rozšíření.
Jste blokován problémem nebo chováním specifickým pro VSTest ve vašem aktuálním pracovním postupu. Microsoft.Testing.Platform V mnoha scénářích není stejný pracovní proces při přesunu na MTP ovlivněn kvůli rozdílům v modelu času běhu a architektuře rozšíření.

Pokud váš konkrétní případ použití není uvedený, jsou obě platformy platnými volbami.

Podpora integrace a nástrojové vybavení

Oblast integrace VSTest Microsoft.Testing.Platform
Integrace integrovaného vývojového prostředí (IDE) Vyspělá integrace napříč Visual Studio a dalšími nástroji, které závisí na protokolu a adaptérech VSTest. Podporováno ve scénářích Visual Studio a Visual Studio Code s průběžnou integrací v částech ekosystému.
CI a externí nástroje Široká podpora napříč dlouhodobými nástroji a úkoly Microsoftu a jiných společností než Microsoft. V Azure DevOps můžete použít úlohu VSTest (VSTest@3, vstest.console) nebo úlohu technologie .NET (DotNetCoreCLI@2, dotnet test). Funguje v pracovních postupech CI a moderními technologie .NET, ale některé integrace třetích stran mohou stále za VSTestem zaostávat. V Azure DevOps použijte úlohu technologie .NET (DotNetCoreCLI@2, dotnet test).
Chování Výchozí režim VSTest Argumenty a chování VSTest se aplikují. Nativní režim MTP je k dispozici v sadě technologie .NET 10 SDK a novějších verzích.

Úplné podrobnosti o režimech a argumentech naleznete v tématu Testování pomocí .

Začněte z testovací architektury

Pokud zvolíte VSTest

  • MSTest: Spouštění testů pomocí MSTest
  • NUnit: NUnit a Microsoft.Testing.Platform
  • xUnit.net: Začínáme s xUnit.net
  • TUnit: Nepodporuje se v nástroji VSTest. Použijte Microsoft.Testing.Platform.

Pokud zvolíte Microsoft.Testing.Platform

  • MSTest: Spouštění testů pomocí MSTest
  • NUnit: Podpora Microsoft.Testing.Platform v NUnit runner
  • xUnit.net: Microsoft Testing Platform (xUnit.net v3)
  • TUnit: Dokumentace k jednotce TUnit

Další kroky

  • Seznámení s koncepty MTP: Microsoft.Testing.Platform – přehled
  • Vysvětlení možností VSTest: Možnosti VSTest
  • Migrace z VSTest: Migrace z VSTest na Microsoft.Testing.Platform
  • Přidání funkcí: Funkce Microsoft.Testing.Platform