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.
Microsoft.Testing.Platform je jednoduchá a přenosná alternativa k VSTest pro spouštění testů ve všech kontextech, včetně kontinuální integrace (CI), pipelines, rozhraní příkazového řádku, Průzkumníka testů Visual Studio a Průzkumníka testů VS Code. Microsoft.Testing.Platform je vložený přímo do vašich testovacích projektů a nejsou potřebné žádné další závislosti aplikací, jako například vstest.console nebo dotnet test, pro spuštění vašich testů.
Spropitné
Pokud potřebujete pomoc s výběrem mezi VSTest a Microsoft.Testing.Platform, začněte přehledem testovacích platforem.
Tento článek použijte, pokud jste se už rozhodli používat Microsoft.Testing.Platform a chcete porozumět jeho modelu, možnostem a provoznímu chování.
Microsoft.Testing.Platform je open source. Kód Microsoft.Testing.Platform najdete v úložišti microsoft/testfx GitHub.
Začněte tady
Na základě toho, co potřebujete, použijte následující cestu:
- Spouštění a ladění testů z rozhraní příkazového řádku, integrovaného vývojového prostředí nebo CI: Spouštění a ladění testů
- Principy chování platformy v rozhraní příkazového řádku: Testování s využitím
dotnet test - Najděte přepínače příkazových řádek platformy a rozšíření na jednom místě: Referenční příručka k možnostem příkazového řádku Microsoft.Testing.Platform
- Konfigurace spouštěčů frameworku: Spouštění testů s MSTest nebo s podporou Microsoft.Testing.Platform v NUnit (NUnit runner)
- Migrace existujícího nastavení VSTest: Migrace z VSTest na Microsoft.Testing.Platform
- Přidání diagnostiky, pokrytí a generování sestav: Funkce Microsoft.Testing.Platform
- Sestavte si vlastní rozšíření: Architektura Microsoft.Testing.Platform, body rozšíření a služby
Pilíře Microsoft.Testing.Platform
Tato nová testovací platforma je založená na prostředí týmu .NET Developer Experience Testing a zaměřuje se na řešení problémů, ke kterým došlo od vydání .NET Core v roce 2016. I když existuje vysoká úroveň kompatibility mezi Frameworkem .NET a .NET Core/.NET, některé klíčové funkce, jako je systém pluginů a nové možnosti podob kompilací .NET, ztížily vývoj nebo plnou podporu nové funkce běhového prostředí v rámci současné architektury platformy VSTest.
Hlavní hlavní faktory pro vývoj nové testovací platformy jsou podrobně popsány v následujících příkladech:
determinismus: Zajištění, aby spuštění stejných testů v různých kontextech (místní, CI) vytvořilo stejný výsledek. Nový modul runtime nespoléhá na reflexi ani na žádnou jinou funkci modulu runtime dynamického .NET ke koordinaci testovacího spuštění.
Transparentnost běhu: Testovací běh neinterferuje s kódem testovací architektury, nevytváří izolované kontexty jako
AppDomainneboAssemblyLoadContext, a nepoužívá reflekci ani vlastní překladače sestavení.Registrace rozšíření v době kompilace: Rozšíření, jako jsou testovací architektury a rozšíření mimo proces, se registrují během kompilace, aby se zajistila determinismus a usnadnila detekce nekonzistence.
Žádné závislosti: Jádrem platformy je jedno sestavení .NET
Microsoft.Testing.Platform.dll, které neobsahuje jiné závislosti než podporované runtime.Hostable: Testovací modul runtime je možné hostovat v libovolné aplikaci .NET. Zatímco konzolová aplikace se běžně používá ke spouštění testů, můžete vytvořit testovací aplikaci v libovolném typu .NET aplikace. To vám umožní spouštět testy v rámci speciálních kontextů, jako jsou zařízení nebo prohlížeče, kde můžou existovat omezení.
Podpora všech formátů .NET: Podpora současných a budoucích formátů .NET, včetně Native AOT.
Výkonnost: Nalezení správné rovnováhy mezi funkcemi a body rozšíření, aby nedocházelo k nafouknutí modulu runtime nefundamentálním kódem. Nová testovací platforma je navržená tak, aby koordinovala testovací běh, než aby poskytovala podrobnosti o tom, jak implementovat testy.
Dostatečně rozšiřitelný: Nová platforma je postavena na bodech rozšiřitelnosti, což umožňuje maximální přizpůsobení běhu času. Umožňuje nakonfigurovat hostitele testovacího procesu, sledovat proces testování a využívat informace z testovací architektury v rámci procesu testovacího hostitele.
nasazení jednoho modulu: Funkce hostability umožňuje jeden model nasazení modulu, kde lze použít jeden výsledek kompilace k podpoře všech bodů rozšiřitelnosti, a to jak mimo proces, tak i bez nutnosti dodávat různé spustitelné moduly.
Podporované testovací architektury
- MSTest. V MSTest je podpora
Microsoft.Testing.Platformzajištěna prostřednictvím MSTest runneru. - NUnit. V rámci NUnit se podpora
Microsoft.Testing.Platformprovádí prostřednictvím spouštěče NUnit. - xUnit.net. Další informace najdete v tématu Microsoft Testing Platform (xUnit.net v3) a Microsoft Testing Platform (xUnit.net v2) z dokumentace k xUnit.net.
- TUnit: zcela postaven na
Microsoft.Testing.Platform, další informace naleznete v dokumentaci TUnit.
Podporované cílové frameworky
Microsoft.Testing.Platform podporuje .NET (.NET 8 a novější), .NET Framework (verze 4.6.2 a novější) a cílí na NETStandard 2.0 pro zajištění maximální kompatibility s jinými moduly runtime.
Spouštění a ladění testů
Podrobné pokyny ke spouštění a ladění testovacích projektů MTP z rozhraní příkazového řádku, Visual Studio, kódu Visual Studio a pipelines CI najdete v tématu Spouštět a ladit testy.
Možnosti
Úplný seznam možností příkazového řádku platformy a rozšíření najdete v referenčních informacích k možnostem rozhraní příkazového řádku Microsoft.Testing.Platform.
Integrace nástroje MSBuild
Balíček NuGet Microsoft.Testing.Platform.MSBuild poskytuje různé integrace pro Microsoft.Testing.Platform s nástrojem MSBuild:
- Podpora pro
dotnet test. Další informace naleznete v tématu Testování pomocí testu dotnet. - Podpora
ProjectCapabilityje vyžadována testovacími průzkumníkyVisual StudioaVisual Studio Code. - Automatické generování vstupního bodu ( metoda
Main). - Automatické generování konfiguračního souboru.
- Automatická detekce a registrace nainstalovaných balíčků rozšíření
Pokud je tento balíček aktivní (výchozí hodnota pro msTest, NUnit a xUnit runners), instalace balíčku NuGet rozšíření je vše, co je potřeba – rozšíření se automaticky zaregistrují beze změn kódu. Pokud zakážete automaticky vygenerovaný vstupní bod nastavením <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>, musíte rozšíření zaregistrovat ručně ve své Main metodě. Každá stránka rozšíření uvádí svůj postup ruční registrace.
Poznámka
Tato integrace funguje tranzitivním způsobem (project, který odkazuje na jiný project odkazující na tento balíček se bude chovat, jako by odkazoval na balíček), a lze jej zakázat prostřednictvím vlastnosti IsTestingPlatformApplication MSBuild.