Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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