Dela via


Översikt över testplattformar för .NET

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

Om du väljer Microsoft.Testing.Platform

Nästa steg