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.
I .NET är ett testramverk och en testplattform olika komponenter som fungerar tillsammans för att identifiera och köra tester.
- Testramverket definierar testmodellen som du skriver mot, till exempel MSTest, NUnit, xUnit.net eller TUnit.
- Testplattformen kör tester, integrerar med IDE:er och CLI och tillhandahåller delade tilläggspunkter.
Du kan välja mellan två testplattformar:
- VSTest
- Microsoft.Testing.Platform (MTP)
Tips/Råd
För den enklaste installationen väljer du en plattform för din lagringsplats och konfigurerar testprojekt, CI och verktyg konsekvent för den plattformen. Blanda inte VSTest-baserade och Microsoft.Testing.Platform-baserade .NET testprojekt i samma lösning eller kör konfigurationen eftersom det scenariot inte stöds. Om du också kör icke-.NET tester som är beroende av VSTest (till exempel C++ eller JavaScript-tester) kör du dessa tester i separata konfigurationer från dina MTP-baserade .NET tester.
Så här väljer du din plattform
Använd följande scenarier för att välja snabbt.
| Användningsfall | Välj | Varför |
|---|---|---|
| Du behöver interna AOT- eller trimningstestkörningsscenarier. | Microsoft.Testing.Platform | MTP stöder dessa moderna distributionsscenarier, medan VSTest inte gör det. |
| Du skapar paketerade WinUI- eller UWP-testprojekt. | VSTest | Dessa projekttyper stöds för närvarande inte av MTP. |
| Du måste blanda .NET-tester och icke-.NET testadaptrar (till exempel JavaScript- eller C++-adaptrar). | VSTest | VSTest stöder scenarier med blandade språkadaptrar, medan MTP är .NET-specifikt. |
Du vill att testprojekt ska fungera som vanliga körbara program (dotnet rundirekt körning av körbara filerdotnet watch och F5-flöden vid start av projektet). |
Microsoft.Testing.Platform | MTP prioriterar körbarhet, så testappar körs som standard .NET-appar i lokala och CI-arbetsflöden. |
| Du förlitar dig på sedan länge etablerade integreringar i befintliga verktyg. | VSTest | VSTest har den längsta kompatibilitetsmeritlista för befintliga produkter, arbetsuppgifter och pipelines. MTP-stödet växer i ekosystemet, men vissa integreringar kan ligga efter VSTest. |
| Du föredrar strikta standardvärden och explicit beteende. | Microsoft.Testing.Platform | MTP föredrar deterministisk körning med en enkel tilläggsmodell och registrering av byggtid. Det kan till exempel misslyckas när inga tester körs, minska miljöberoende variabilitet och låta dig inaktivera enskilda tillägg per miljö. |
| Du föredrar mjukare, breda bakåtkompatibla standardvärden. | VSTest | Båda plattformarna bryr sig om bakåtkompatibilitet. VSTest prioriterar kompatibilitetsorienterade standardvärden för olika befintliga verktygskedjor, medan MTP ger bakåtkompatibilitet i sin egen tilläggsmodell. |
| Du blockeras av ett VSTest-specifikt problem eller beteende i det aktuella arbetsflödet. | Microsoft.Testing.Platform | I många scenarier påverkas inte samma arbetsflöde när det flyttas till MTP på grund av skillnader i körningsmodell och tilläggsarkitektur. |
Om ditt specifika användningsfall inte visas är båda plattformarna giltiga alternativ.
Stöd för integrering och verktyg
| Integrationsområde | VSTest | Microsoft.Testing.Platform |
|---|---|---|
| IDE-integrering | Mogen integrering över Visual Studio och andra verktyg som är beroende av VSTest-protokoll och adaptrar. | Stöds i Visual Studio och Visual Studio Code scenarier, med pågående integreringsarbete i delar av ekosystemet. |
| CI och externa verktyg | Brett stöd för sedan länge etablerade Microsoft- och icke-Microsoft-verktyg och uppgifter. I Azure DevOps kan du använda antingen VSTest-aktiviteten (VSTest@3, vstest.console) eller uppgiften .NET (DotNetCoreCLI@2, dotnet test). |
Fungerar i CI och moderna .NET arbetsflöden, men vissa integreringar från tredje part kan fortfarande ligga efter VSTest. I Azure DevOps använder du uppgiften .NET (DotNetCoreCLI@2, dotnet test). |
dotnet test Beteende |
Standardläge för VSTest. VSTest-argument och beteende gäller. | Inbyggt MTP-läge är tillgängligt i .NET 10 SDK och senare. |
Fullständig information om dotnet test lägen och argument finns i Testa med dotnet test.
Börja från ditt testramverk
Om du väljer VSTest
- MSTest: Kör tester med MSTest
- NUnit: NUnit och Microsoft.Testing.Platform
- xUnit.net: Kom igång med xUnit.net
- TUnit: Stöds inte i VSTest. Använd Microsoft.Testing.Platform.
Om du väljer Microsoft.Testing.Platform
- MSTest: Kör tester med MSTest
- NUnit: Stöd för Microsoft.Testing.Platform i NUnit (NUnit runner)
- xUnit.net: Microsoft Testing Platform (xUnit.net v3)
- TUnit: TUnit-dokumentation
Nästa steg
- Lär dig MTP-begrepp: Översikt över Microsoft.Testing.Platform
- Förstå VSTest-alternativ: VSTest-alternativ
- Migrera från VSTest: Migrera från VSTest till Microsoft.Testing.Platform
- Lägg till funktioner: Microsoft.Testing.Platform-funktioner