Sdílet prostřednictvím


Microsoft.Testing.Platform – přehled

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:

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 AppDomain nebo AssemblyLoadContext, 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 nefunda­mentá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

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 ProjectCapability je vyžadována testovacími průzkumníky Visual Studio a Visual Studio Code.
  • Automatické generování vstupního bodu ( metodaMain).
  • 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.

Viz také