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.
Microsoft.Testing.Platform is een lichtgewicht en draagbaar alternatief voor VSTest voor het uitvoeren van tests in alle contexten, waaronder CI-pipelines, CLI, Visual Studio Test Explorer en VS Code Test Explorer. Microsoft.Testing.Platform is rechtstreeks in uw testprojecten ingesloten en er zijn geen andere app-afhankelijkheden, zoals vstest.console of dotnet test nodig om uw tests uit te voeren.
Aanbeveling
Als u hulp nodig hebt bij het kiezen tussen VSTest en Microsoft.Testing.Platform, begint u met het overzicht van testplatforms.
Gebruik dit artikel wanneer u al hebt besloten Om Microsoft.Testing.Platform te gebruiken en u wilt weten wat het model, de mogelijkheden en het operationele gedrag zijn.
Microsoft.Testing.Platform is open source. U vindt Microsoft.Testing.Platform code in microsoft/testfx GitHub opslagplaats.
Begin hier
Gebruik het volgende pad op basis van wat u hierna nodig hebt:
- Tests uitvoeren en fouten opsporen vanuit CLI, IDE of CI: Tests uitvoeren en fouten opsporen
- Inzicht in platformgedrag in CLI: Testen met
dotnet test - CLI-switches voor platform en extensie zoeken op dezelfde plaats: Referentie CLI-opties voor Microsoft.Testing.Platform
- Framework-runners configureren: Tests uitvoeren met MSTest of Microsoft.Testing.Platform-ondersteuning in NUnit (NUnit runner)
- Een bestaande VSTest-installatie migreren: migreren van VSTest naar Microsoft.Testing.Platform
- Diagnostische gegevens, dekking en rapportage toevoegen: Functies van Microsoft.Testing.Platform
- Uw eigen extensie bouwen: Microsoft.Testing.Platform-architectuur, extensiepunten en services
Microsoft.Testing.Platform-pijlers
Dit nieuwe testplatform is gebaseerd op de ervaring van het .NET Developer Experience Testing-team en is gericht op de uitdagingen die zijn opgetreden sinds de release van .NET Core in 2016. Hoewel er een hoog compatibiliteitsniveau is tussen het .NET Framework en de .NET Core/.NET, hebben sommige belangrijke functies zoals het invoegtoepassingssysteem en de nieuwe mogelijke vormfactoren van .NET compilaties het complex gemaakt om de nieuwe runtimefunctie te ontwikkelen of volledig te ondersteunen met het huidige VSTest-platform architectuur.
De belangrijkste factoren voor de ontwikkeling van het nieuwe testplatform worden in het volgende beschreven:
Determinisme: Ervoor zorgen dat dezelfde tests in verschillende contexten (lokaal, CI) hetzelfde resultaat opleveren. De nieuwe runtime is niet afhankelijk van reflectie of een andere dynamische .NET runtime-functie om een testuitvoering te coördineren.
Runtime transparantie: de testruntime interfereert niet met de code van het testframework, creëert geen geïsoleerde contexten zoals
AppDomainofAssemblyLoadContext, en gebruikt geen reflectie of aangepaste assembly-resolvers.Compilatietijdregistratie van extensies: Extensies, zoals testframeworks en in-/out-of-process-extensies, worden geregistreerd tijdens het compileren om determinisme te garanderen en om de detectie van inconsistenties te vergemakkelijken.
Zero-afhankelijkheden: De kern van het platform is één .NET assembly,
Microsoft.Testing.Platform.dll, die geen andere afhankelijkheden heeft dan de ondersteunde runtimes.Hostable: De testruntime kan worden gehost in elke .NET toepassing. Hoewel een consoletoepassing vaak wordt gebruikt om tests uit te voeren, kunt u een testtoepassing maken in elk type .NET toepassing. Hiermee kunt u tests uitvoeren binnen speciale contexten, zoals apparaten of browsers, waarbij er mogelijk beperkingen zijn.
Ondersteuning voor alle .NET formaten: Ondersteuning voor de huidige en toekomstige .NET formaten, inclusief Native AOT.
Performant-: het vinden van de juiste balans tussen functies en extensiepunten om te voorkomen dat de runtime wordt opgeblazen met niet-fundamentele code. Het nieuwe testplatform is ontworpen om een testuitvoering te 'coördineren' in plaats van implementatiedetails te verstrekken over hoe dat te doen.
Uitbreidbaar genoeg: het nieuwe platform is gebouwd op uitbreidbaarheidspunten om maximale aanpassing van runtime-uitvoering mogelijk te maken. Hiermee kunt u de testproceshost configureren, het testproces observeren en informatie van het testframework gebruiken binnen het testhostproces.
implementatie van één module: met de functie hostbaarheid kan één module worden geïmplementeerd, waarbij één compilatieresultaat kan worden gebruikt ter ondersteuning van alle uitbreidbaarheidspunten, zowel out-of-process als in-process, zonder dat er verschillende uitvoerbare modules hoeven te worden verzonden.
Ondersteunde testframeworks
- MSTest. In MSTest wordt de ondersteuning van
Microsoft.Testing.Platformuitgevoerd via MSTest runner. - NUnit. In NUnit wordt de ondersteuning van
Microsoft.Testing.Platformgedaan via NUnit runner. - xUnit.net. Zie Microsoft Testing Platform (xUnit.net v3) en Microsoft Testing Platform (xUnit.net v2) in de documentatie van xUnit.net voor meer informatie.
- TUnit: volledig gebouwd op de
Microsoft.Testing.Platform. Voor meer informatie, zie de TUnit-documentatie.
Ondersteunde doelframeworks
Microsoft.Testing.Platform ondersteunt .NET (.NET 8 en hoger), .NET Framework (versie 4.6.2 en hoger) en is gericht op NETStandard 2.0 voor maximale compatibiliteit met andere runtimes.
Tests uitvoeren en fouten opsporen
Zie Run and debug tests voor gedetailleerde richtlijnen voor het uitvoeren en opsporen van fouten in MTP-testprojecten vanuit CLI, Visual Studio, Visual Studio Code en CI-pipelines.
Opties
Zie voor de volledige lijst met opdrachtregelopties voor het platform en de extensie microsoft.Testing.Platform CLI.
MSBuild-integratie
Het NuGet-pakket Microsoft.Testing.Platform.MSBuild biedt verschillende integraties voor Microsoft.Testing.Platform met MSBuild:
- Ondersteuning voor
dotnet test. Zie Testen met dotnet-test voor meer informatie. - Ondersteuning voor
ProjectCapabilityvereist voorVisual StudioenVisual Studio CodeTest Explorers. - Automatisch genereren van het toegangspunt (
Mainmethode). - Automatisch genereren van het configuratiebestand.
- Automatische detectie en registratie van geïnstalleerde extensiepakketten.
Wanneer dit pakket actief is (de standaardinstelling voor MSTest, NUnit en xUnit runners), is het installeren van een extensie NuGet-pakket alles wat nodig is. Extensies worden automatisch geregistreerd zonder codewijzigingen. Als u het automatisch gegenereerde toegangspunt uitschakelt door de instelling in te stellen <GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>, moet u extensies handmatig registreren in uw Main methode. Op elke extensiepagina wordt de handmatige registratieoproep geregistreerd.
Notitie
Deze integratie werkt op een transitieve manier (een project die verwijst naar een andere project die naar dit pakket verwijst, gedraagt zich alsof het naar het pakket verwijst) en kan worden uitgeschakeld via de eigenschap IsTestingPlatformApplication MSBuild.