Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Microsoft.Testing.Platform är ett enkelt och bärbart alternativ till VSTest för att köra tester i alla sammanhang, inklusive kontinuerlig integrering (CI) pipelines, CLI, Visual Studio Test Explorer och VS Code Test Explorer. Microsoft.Testing.Platform är inbäddad direkt i dina testprojekt och det finns inga andra appberoenden, till exempel vstest.console eller dotnet test som behövs för att köra dina tester.
Tips
Om du behöver hjälp med att välja mellan VSTest och Microsoft.Testing.Platform börjar du med Översikt över testplattformar.
Använd den här artikeln när du redan har bestämt dig för att använda Microsoft.Testing.Platform och vill förstå dess modell, funktioner och driftsbeteende.
Microsoft.Testing.Platform är open source. Du hittar Microsoft.Testing.Platform-kod på lagringsplatsen microsoft/testfx GitHub.
Börja här
Använd följande sökväg baserat på vad du behöver härnäst:
- Köra och felsöka tester från CLI, IDE eller CI: Köra och felsöka tester
- Förstå plattformsbeteende i CLI: Testa med
dotnet test - Hitta CLI-växlar för plattform och tillägg på ett ställe: Referens för CLI-alternativ för Microsoft.Testing.Platform
- Konfigurera ramverkslöpare: Kör tester med MSTest - eller Microsoft.Testing.Platform-stöd i NUnit (NUnit runner)
- Migrera en befintlig VSTest-installation: Migrera från VSTest till Microsoft.Testing.Platform
- Lägg till diagnostik, täckning och rapportering: Microsoft.Testing.Platform-funktioner
- Skapa ett eget tillägg: Arkitekturen Microsoft.Testing.Platform, tilläggspunkter och tjänster
Grundpelare för Microsoft.Testing.Platform
Den här nya testplattformen bygger på .NET Utvecklarupplevelsetestningsteamets erfarenhet och syftar till att hantera de utmaningar som har uppstått sedan .NET Core släpptes 2016. Även om det finns en hög kompatibilitetsnivå mellan .NET Framework och .NET Core/.NET har vissa viktiga funktioner som plugin-systemet och de nya möjliga formfaktorerna för .NET kompileringar gjort det komplicerat att utveckla eller helt stödja den nya körningsfunktionen med den aktuella VSTest-plattformen arkitektur.
De viktigaste faktorerna för utvecklingen av den nya testplattformen beskrivs i följande:
Determinism: Att se till att samma tester körs i olika kontexter (lokalt, CI) ger samma resultat. Den nya körtidsmiljön förlitar sig inte på reflection eller någon annan dynamisk .NET körtidsfunktion för att samordna en testrun.
Runtime-transparens: Testkörningen stör inte testramverkets kod, den skapar inte isolerade kontexter som
AppDomainellerAssemblyLoadContextoch använder inte reflektions- eller anpassade sammansättningslösare.Kompileringstidsregistrering av tillägg: Tillägg, till exempel testramverk och in-/out-of-process-tillägg, registreras under kompileringstiden för att säkerställa determinism och för att underlätta identifiering av inkonsekvenser.
Inga beroenden: Kärnan i plattformen är en enda .NET-assembly,
Microsoft.Testing.Platform.dll, som inte har några andra beroenden än de körningsmiljöer som stöds.Hostable: Testkörningen kan köras i alla .NET program. Även om ett konsolprogram ofta används för att köra tester kan du skapa ett testprogram i alla typer av .NET program. På så sätt kan du köra tester inom särskilda kontexter, till exempel enheter eller webbläsare, där det kan finnas begränsningar.
Stöder alla .NET-formfaktorer: Stöd nuvarande och framtida .NET-formfaktorer, inklusive Native AOT.
Effektiv: Hitta rätt balans mellan funktioner och utbyggnadspunkter för att undvika att överbelasta körmiljön med icke-grundläggande kod. Den nya testplattformen är utformad för att "orkestrera" en testkörning i stället för att tillhandahålla implementeringsinformation om hur man gör det.
Tillräckligt utbyggbar: Den nya plattformen bygger på utökningspunkter för att möjliggöra maximal anpassning av körningen. Det gör att du kan konfigurera testvärdsprocessen, observera testprocessen och utnyttja information från testramverket inom testvärdsprocessen.
Distribuera en enkel modul: Värdbarhetsfunktionen möjliggör en distributionsmodell för en enkel modul, där ett enda kompileringsresultat kan användas för att stödja alla utökningspunkter, både utanför processen och i processen, utan att behöva leverera olika körbara moduler.
Testramverk som stöds
- MSTest. I MSTest görs stödet för
Microsoft.Testing.Platformvia MSTest runner. - NUnit. I NUnit stöds
Microsoft.Testing.Platformvia NUnit-testrunner. - xUnit.net. Mer information finns i Microsoft Testing Platform (xUnit.net v3) och Microsoft Testing Platform (xUnit.net v2) från xUnit.net-dokumentationen.
- TUnit: helt konstruerat ovanpå
Microsoft.Testing.Platform, mer information finns i TUnit-dokumentationen.
Målramverk som stöds
Microsoft.Testing.Platform stöder .NET (.NET 8 och senare), .NET Framework (version 4.6.2 och senare) och riktar sig till NETStandard 2.0 för maximal kompatibilitet med andra körningar.
Köra och felsöka tester
Detaljerad information om hur du kör och felsöker MTP-testprojekt från CLI, Visual Studio, Visual Studio Code och CI pipelines finns i Run and debug tests.
Alternativ
En fullständig lista över kommandoradsalternativ för plattform och tillägg finns i Referens för CLI-alternativ för Microsoft.Testing.Platform.
MSBuild-integrering
NuGet-paketet Microsoft.Testing.Platform.MSBuild innehåller olika integreringar för Microsoft.Testing.Platform med MSBuild:
- Stöd för
dotnet test. Mer information finns i Testa med dotnet-test. - Stöd för
ProjectCapability, som krävs avVisual StudioochVisual Studio Codetestutforskare. - Automatisk generering av startpunkten (
Main-metoden). - Automatisk generering av konfigurationsfilen.
- Automatisk identifiering och registrering av installerade tilläggspaket.
När det här paketet är aktivt (standardvärdet för MSTest, NUnit och xUnit-löpare) är det allt som behövs att installera ett NuGet-tillägg – tillägg registreras automatiskt utan kodändringar. Om du inaktiverar den automatiskt genererade startpunkten genom att ange <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>måste du registrera tillägg manuellt i din Main metod. Varje tilläggssida dokumenterar sitt manuella registreringsanrop.
Not
Den här integrationen arbetar transitivt (ett projekt som refererar till ett annat projekt som refererar till det här paketet fungerar som om det refererar till paketet) och kan inaktiveras via egenskapen IsTestingPlatformApplication MSBuild.