Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In .NET zijn een testframework en een testplatform verschillende onderdelen die samenwerken om tests te detecteren en uit te voeren.
- Het testframework definieert het testmodel waarop u schrijft, zoals MSTest, NUnit, xUnit.net of TUnit.
- Het testplatform voert tests uit, integreert met IDE's en CLI en biedt gedeelde extensiepunten.
U kunt kiezen tussen twee testplatforms:
- VSTest
- Microsoft.Testing.Platform (MTP)
Waarschuwing
Combineer geen VSTest- en Microsoft.Testing.Platform-testprojecten in dezelfde repository-runconfiguratie.
Kies één platform voor de testwerkstroom van uw opslagplaats en configureer testprojecten, CI en hulpprogramma's consistent voor dat platform.
Uw platform kiezen
Gebruik de volgende scenario's om snel te kiezen.
| Gebruiksituatie | Kiezen | Waarom |
|---|---|---|
| U hebt systeemeigen AOT nodig of scenario's voor het bijsnijden van testuitvoeringen. | Microsoft.Testing.Platform | MTP ondersteunt deze moderne implementatiescenario's, terwijl VSTest dat niet doet. |
| U moet .NET-tests combineren en non-.NET testadapters (bijvoorbeeld JavaScript- of C++-adapters). | VSTest | VSTest biedt ondersteuning voor scenario's voor adapter in gemengde talen, terwijl MTP is. NET-specifiek. |
U wilt dat testprojecten zich gedragen als normale uitvoerbare bestanden (dotnet rundirecte uitvoerbare uitvoering dotnet watchen opstartproject F5-stromen). |
Microsoft.Testing.Platform | MTP is eerst uitvoerbaar, dus test-apps worden uitgevoerd als standaard .NET-apps in lokale en CI-werkstromen. |
| U bent afhankelijk van lang gevestigde integraties in Microsoft en niet-Microsoft-hulpprogramma's. | VSTest | VSTest heeft de langste compatibiliteitstrackrecord voor bestaande producten, taken en pijplijnen. |
| U geeft prioriteit aan reproduceerbaarheid en een strakkere controle over het laden van extensies op computers. | Microsoft.Testing.Platform | MTP biedt de voorkeur aan expliciete, build-time-extensieregistratie, waardoor machineafhankelijk gedrag van dynamisch gedetecteerde onderdelen wordt verminderd en de beveiligingsbeoordeling kan worden vereenvoudigd. |
| U hebt een minimale kern nodig met optionele functies die u per omgeving kunt uitschakelen. | Microsoft.Testing.Platform | MTP maakt gebruik van een lichtgewicht kern met opt-in-extensies. Als een extensie niet-ondersteunde afhankelijkheden of versieconflicten in een specifieke omgeving introduceert, kunt u die extensie verwijderen of uitschakelen. |
| U geeft de voorkeur aan strikte standaardinstellingen en expliciet gedrag. | Microsoft.Testing.Platform | MTP is voorstander van deterministische uitvoering met expliciete controles. Het kan bijvoorbeeld mislukken wanneer er geen tests worden uitgevoerd, omgevingsafhankelijke variabiliteit verminderen en impliciete detectie- en uitvoerings-heuristiek voorkomen. |
| U geeft de voorkeur aan zachtere, brede standaardinstellingen die compatibel zijn met eerdere versies. | VSTest | VSTest geeft prioriteit aan compatibiliteitsgeoriënteerde standaardwaarden voor diverse, bestaande hulpprogrammaketens. |
| U wordt geblokkeerd door een vsTest-specifiek probleem of gedrag in uw huidige werkstroom. | Microsoft.Testing.Platform | In veel scenario's wordt dezelfde werkstroom niet beïnvloed wanneer deze wordt verplaatst naar MTP vanwege verschillen in runtimemodel- en extensiearchitectuur. |
Als uw specifieke use-case niet wordt vermeld, zijn beide platforms geldige keuzes.
Ondersteuning voor integratie en hulpprogramma's
| Integratiegebied | VSTest | Microsoft.Testing.Platform |
|---|---|---|
| IDE-integratie | Volwassen integratie in Visual Studio en andere hulpprogramma's die afhankelijk zijn van het VSTest-protocol en -adapters. | Ondersteund in Visual Studio- en Visual Studio Code-scenario's, met doorlopende integratiewerkzaamheden in delen van het ecosysteem. |
| CI en externe hulpprogramma's | Brede ondersteuning voor lang gevestigde Microsoft- en niet-Microsoft-hulpprogramma's en -taken. In Azure DevOps kunt u de VSTest-taak (VSTest@3, vstest.console) of de .NET-taak (DotNetCoreCLI@2, ) dotnet testgebruiken. |
Werkt in CI en moderne .NET-werkstromen, maar sommige integraties van derden kunnen nog steeds achterblijven bij VSTest. Gebruik in Azure DevOps de .NET-taak (DotNetCoreCLI@2, dotnet test). |
dotnet test Gedrag |
Standaard VSTest-modus. VSTest-argumenten en -gedrag zijn van toepassing. | Systeemeigen MTP-modus is beschikbaar in .NET 10 SDK en hoger. Vóór .NET 10 SDK heeft MTP de VSTest-modus doorlopen met beperkingen (TestingPlatformDotnetTestSupportplus het scheidingsteken voor extra -- argumenten). |
Zie dotnet testvoor meer informatie over modi en argumenten.
Beginnen met uw testframework
Als u VSTest kiest
- MSTest: Tests uitvoeren met MSTest
- NUnit: NUnit en Microsoft.Testing.Platform
- xUnit.net: Aan de slag met xUnit.net
- TUnit: Niet ondersteund op VSTest. Gebruik Microsoft.Testing.Platform.
Als u Microsoft.Testing.Platform kiest
- MSTest: Tests uitvoeren met MSTest
- NUnit: Microsoft.Testing.Platform-ondersteuning in NUnit (NUnit runner)
- xUnit.net: Microsoft Testing Platform (xUnit.net v3)
- TUnit-documentatie TUnit
Volgende stappen
- Meer informatie over MTP-concepten: Overzicht van Microsoft.Testing.Platform
- Opties voor VSTest begrijpen: VSTest-opties
- Migreren van VSTest: migreren van VSTest naar Microsoft.Testing.Platform
- Mogelijkheden toevoegen: Functies van Microsoft.Testing.Platform