dotnet-test met Microsoft.Testing.Platform (MTP)

Dit artikel is van toepassing op: ✔️ .NET 10 SDK en latere versies

Naam

dotnet test - .NET teststuurprogramma gebruikt voor het uitvoeren van eenheidstests met MTP.

Samenvatting

dotnet test
    [<PROJECT_OR_TRAVERSAL_PATH>]
    [--project <PROJECT_PATH>]
    [--solution <SOLUTION_PATH>]
    [--test-modules <EXPRESSION>]
    [--root-directory <ROOT_PATH>]
    [--max-parallel-test-modules <NUMBER>]
    [--config-file <CONFIG_FILE>]
    [--results-directory <RESULTS_DIRECTORY>]
    [--results-directory-layout <flat|per-module>]
    [--diagnostic-output-directory <DIAGNOSTIC_OUTPUT_DIRECTORY>]
    [--minimum-expected-tests <NUMBER>]
    [--maximum-failed-tests <NUMBER>]
    [--timeout <DURATION>]
    [-e|--environment <NAME="VALUE">]
    [-a|--arch <ARCHITECTURE>]
    [--artifacts-path <ARTIFACTS_DIR>]
    [-c|--configuration <CONFIGURATION>]
    [-f|--framework <FRAMEWORK>]
    [--os <OS>]
    [-r|--runtime <RUNTIME_IDENTIFIER>]
    [--use-current-runtime|--ucr]
    [-v|--verbosity <LEVEL>]
    [--no-build]
    [--no-dependencies]
    [--no-restore]
    [--nologo|--no-logo|--no-banner]
    [--no-ansi]
    [--no-progress]
    [--no-artifact-post-processing]
    [--output <VERBOSITY_LEVEL>]
    [--show-test-results <OUTCOME>]
    [--list-tests [text|json]]
    [--no-launch-profile]
    [--no-launch-profile-arguments]
    [--device <DEVICE_ID>]
    [--list-devices]
    [--collect-test-map]
    [--affected-tests]
    [<args>...]

dotnet test -h|--help

Description

Met MTP dotnet test werkt sneller dan met VSTest. De testgerelateerde argumenten worden niet meer opgelost, omdat ze zijn gekoppeld aan de geregistreerde extensies in de test project(s). Bovendien ondersteunt MTP een globbing-filter bij het uitvoeren van tests. Zie MTP voor meer informatie.

Important

Extensiespecifieke opties zijn niet ingebouwd in MTP. Elke doeltesttoepassing moet de extensie registreren die een optie biedt. Voeg het NuGet-pakket van de extensie rechtstreeks toe of gebruik een test-SDK-configuratie of -profiel dat het pakket bevat. Anders mislukt de testuitvoering met afsluitcode 5 omdat de optie niet wordt herkend. Voer deze dotnet test --help opdracht uit om de opties te zien die beschikbaar zijn voor de geselecteerde testtoepassingen en bekijk uitbreidingsopties per scenario om het pakket voor een optie te vinden.

Waarschuwing

Wanneer MTP is aangemeld via global.json, dotnet test verwacht u dat alle testprojecten MTP gebruiken. Het is een fout als een van de testprojecten VSTest gebruikt.

Versievereisten

Voor de MTP-modus is dotnet test de .NET 10 SDK en MTP 1.7 of hoger vereist. Opties die na .NET 10 zijn toegevoegd, hebben afzonderlijke SDK-versievereisten in de volgende secties. Voor sommige opties is ook een nieuwer MTP-pakket vereist, omdat de SDK de volledige uitvoering coördineert terwijl elke testtoepassing de bijbehorende mogelijkheid implementeert.

Impliciete herstelbewerking

U hoeft dotnet restore niet uit te voeren omdat deze impliciet wordt uitgevoerd door alle opdrachten waarvoor een herstelbewerking is vereist, zoals dotnet new, dotnet build, dotnet run, dotnet test, dotnet publishen dotnet pack. Als u impliciet herstellen wilt uitschakelen, gebruikt u de optie --no-restore.

De opdracht dotnet restore is nog steeds nuttig in bepaalde scenario's waarbij het expliciet herstellen zinvol is, zoals continue integratiebuilds in Azure DevOps Services of in buildsystemen die expliciet moeten worden beheerd wanneer het herstellen plaatsvindt.

Zie de dotnet restore documentatievoor meer informatie over het beheren van NuGet-feeds.

Important

Wanneer u een project of oplossing uitvoert met --no-restore, houdt u zowel de herstelde projectstatus in de obj map als de overeenkomende globale pakketmap beschikbaar. Testframework- en platformpakketimporten stellen de MSBuild-eigenschappen in die dotnet test worden gebruikt om MTP-testtoepassingen te identificeren. De --no-build optie impliceert --no-restoreook . Als de testomgeving ingebouwde testtoepassingen bevat, maar niet de herstelstatus van het project, gebruikt --test-modules u in plaats daarvan. Zie No test projects were found voor meer informatie.

Options

Opmerking

U kunt slechts één van de volgende opties tegelijk gebruiken: --project, --solution of --test-modules. Deze opties kunnen niet worden gecombineerd. Bovendien kunt u, wanneer u gebruikt--test-modules, niet opgeven--arch, --configuration, , --device, --framework--list-devices, --os, , --runtime, of --use-current-runtime. Deze opties vereisen projectevaluatie of zijn niet relevant voor een reeds gebouwde module.

  • PROJECT_OR_TRAVERSAL_PATH

    Hiermee geeft u een project of doorkruisingsproject op dat moet worden uitgevoerd. Vanaf .NET 11 Preview 7 worden dotnet testMicrosoft.Build.Traversal projecten ondersteund, zoals dirs.projen recursief uitgevoerd naar hun testprojecten waarnaar wordt verwezen.

    Vanaf .NET 12 Preview 1 kan het argument ook een MTP-test-app op basis van een C#-bestand identificeren. Op bestanden gebaseerde test-apps bieden geen ondersteuning voor --device.

  • --project <PROJECT_PATH>

    Hiermee geeft u het pad van het project bestand dat moet worden uitgevoerd (mapnaam of volledig pad). Als dit niet is opgegeven, wordt deze standaard ingesteld op de huidige map.

  • --solution <SOLUTION_PATH>

    Hiermee geeft u het pad van het oplossingsbestand dat moet worden uitgevoerd (mapnaam of volledig pad). Als dit niet is opgegeven, wordt deze standaard ingesteld op de huidige map.

  • --test-modules <EXPRESSION>

    Filtert testmodules met bestandsglobbing. Alleen tests die behoren tot die testmodules worden uitgevoerd. Omdat deze optie geen projecten evalueert, gebruikt u deze om reeds gebouwde testtoepassingen uit te voeren wanneer de status van projectherstel niet beschikbaar is. Vanaf .NET 11 Preview 6, moet u een patroon vooraf laten gaan om ! overeenkomende modules uit te sluiten. Meerdere patronen scheiden met puntkomma's; witruimte rond elk patroon wordt genegeerd.

  • --root-directory <ROOT_PATH>

    Hiermee geeft u de hoofdmap van de --test-modules optie. Deze kan alleen worden gebruikt met de optie --test-modules.

  • --max-parallel-test-modules <NUMBER>

    Hiermee geeft u het maximum aantal testmodules op dat parallel kan worden uitgevoerd. De standaardwaarde is Environment.ProcessorCount.

  • --config-file <CONFIG_FILE>

    Hiermee geeft u het configuratiebestand dat moet worden gebruikt voor testuitvoering. Als er een relatief pad wordt opgegeven, wordt het geconverteerd naar een absoluut pad op basis van de huidige map. Zie testconfig.jsonvoor meer informatie over de instellingen van het configuratiebestand.

  • --results-directory <RESULTS_DIRECTORY>

    Hiermee geeft u de map waarin testresultaten worden opgeslagen. Als de map niet bestaat, wordt deze gemaakt. Als er een relatief pad wordt opgegeven, wordt het geconverteerd naar een absoluut pad op basis van de huidige map.

  • --results-directory-layout <flat|per-module>

    Hiermee geeft u op hoe een uitvoering met meerdere modules bestanden in de resultatenmap ordent. De standaardinstelling, flatschrijft alle resultaten naar dezelfde map. per-module schrijft de resultaten van elke module naar <project>/<target-framework>_<runtime-or-architecture>, waardoor rapporten met dezelfde bestandsnaam elkaar niet kunnen overschrijven.

    Verkrijgbaar vanaf .NET 11 RC 1.

  • --diagnostic-output-directory <DIAGNOSTIC_OUTPUT_DIRECTORY>

    Hiermee geeft u de map waarin diagnostische uitvoer wordt opgeslagen. Als de map niet bestaat, wordt deze gemaakt. Als er een relatief pad wordt opgegeven, wordt het geconverteerd naar een absoluut pad op basis van de huidige map.

  • --minimum-expected-tests <NUMBER>

    Hiermee geeft u een positief minimum aantal tests voor de hele uitvoering. Als het geaggregeerde testaantal kleiner is dan het opgegeven minimum, mislukt de testuitvoering met afsluitcode 9. Het totaalaantal omvat overgeslagen tests. Zie MTP-afsluitcodes voor meer informatie over afsluitcodes.

    Omdat deze optie eerder --wordt weergegeven, is dit een globale optie (hele uitvoering). Als u in plaats daarvan een minimum wilt vereisen voor elke testmodule, geeft u de optie door -- , zodat deze wordt doorgestuurd naar elke testmodule. Zie minimumaantallen voor volledige uitvoering en per module voor meer informatie.

    Opmerking

    Voor het globale minimum is de .NET 10 SDK (10.0.100) of een latere versie vereist.

  • --maximum-failed-tests <NUMBER>

    Hiermee stopt u de volledige uitvoering nadat het opgegeven aantal mislukte, mislukte, mislukte, time-out of geannuleerde tests is bereikt. De uitvoering wordt afgesloten met code 13.

    Beschikbaar vanaf .NET 11 Preview 7 en vereist MTP 2.4 of hoger.

  • --timeout <DURATION>

    Hiermee stopt u de volledige uitvoering na de opgegeven duur, terwijl ten minste één testtoepassing wordt uitgevoerd. Geef een positief getal op gevolgd door een eenheid, zoals 500ms, 90s, 10m, of 2h1d. Er wordt een time-outuitvoering afgesloten met code 3.

    Beschikbaar vanaf .NET 11 Preview 7 en vereist MTP 2.4 of hoger.

  • -e|--environment <NAME="VALUE">

    Hiermee stelt u een omgevingsvariabele in voor het testproces. Geef de optie meerdere keren op om meerdere variabelen in te stellen. Opdrachtregelwaarden overschrijven waarden uit een startprofiel.

    Gebruik .NET SDK 10.0.110 of hoger wanneer er geen startprofiel bestaat of wanneer u opgeeft--no-launch-profile; eerder .NET 10 SDK-versies kunnen de variabelen in die gevallen negeren. Vanaf .NET 11 Preview 7 stromen de variabelen ook naar mogelijkhedenbewuste build-, apparaatselectie-, implementatie- en run-argumentdoelen.

  • -a|--arch <ARCHITECTURE>

    Hiermee geeft u de doelarchitectuur. Dit is een verkorte syntaxis voor het instellen van de Runtime Identifier (RID), waarbij de opgegeven waarde wordt gecombineerd met de standaard-RID. Als u bijvoorbeeld op een win-x64 computer opgeeft --arch x86 de RID instelt op win-x86. Als u deze optie gebruikt, gebruikt u de optie -r|--runtime niet. Beschikbaar sinds .NET 6 preview 7.

  • --artifacts-path <ARTIFACTS_DIR>

    Alle builduitvoerbestanden van de uitgevoerde opdracht worden weergegeven in submappen onder het opgegeven pad, gescheiden door project. Zie De indeling Artefacten-uitvoer voor meer informatie. Deze optie en de opgegeven waarde moeten expliciet worden ge trapsgewijs worden uitgevoerd in een dotnet opdracht die afhankelijk is van de uitvoer van een andere dotnet opdracht, bijvoorbeeld bij gebruik dotnet build --no-restore en dotnet publish --no-build. Beschikbaar sinds .NET 8 SDK.

    Beschikbaar voor MTP-modus vanaf .NET 11.

  • -c|--configuration <CONFIGURATION>

    Definieert de buildconfiguratie. De standaardinstelling voor de meeste projecten is Debug, maar u kunt de buildconfiguratie-instellingen in uw project overschrijven.

  • -f|--framework <FRAMEWORK>

    Het doelframework moniker (TFM) van het doelframework om tests voor uit te voeren. Het doelframework moet ook worden opgegeven in het project-bestand.

  • --os <OS>

    Hiermee geeft u het doelbesturingssysteem (OS). Dit is een verkorte syntaxis voor het instellen van de Runtime Identifier (RID), waarbij de opgegeven waarde wordt gecombineerd met de standaard-RID. Als u bijvoorbeeld op een win-x64 computer opgeeft --os linux de RID instelt op linux-x64. Als u deze optie gebruikt, gebruikt u de optie -r|--runtime niet. Beschikbaar sinds .NET 6.

  • -r|--runtime <RUNTIME_IDENTIFIER>

    De doelruntime om op te testen.

    Korte vorm -r beschikbaar vanaf .NET SDK 7.

    Opmerking

    Het uitvoeren van tests voor een oplossing met een globale RuntimeIdentifier eigenschap (expliciet of via --arch, --runtimeof --os) wordt niet ondersteund. Stel in plaats daarvan RuntimeIdentifier in op een afzonderlijk project niveau.

  • --use-current-runtime|--ucr

    Gebruikt de huidige runtime als doelruntime tijdens het herstellen en bouwen.

    Beschikbaar vanaf .NET 11 preview 6. U kunt deze optie niet combineren met --test-modules.

  • -v|--verbosity <LEVEL>

    Hiermee stelt u het uitgebreidheidsniveau van de opdracht in. Toegestane waarden zijnq[uiet], , , m[inimal]en n[ormal]d[etailed]diag[nostic]. Zie LoggerVerbosity voor meer informatie.

  • --no-build

    Hiermee geeft u op dat de test project niet is gebouwd voordat deze wordt uitgevoerd. Ook wordt de vlag --no-restore impliciet ingesteld.

  • --no-dependencies

    Slaat het bouwen van project-naar-projectverwijzingen over.

    Beschikbaar vanaf .NET 11 preview 6.

  • --no-restore

    Hiermee geeft u op dat een impliciete herstelbewerking niet wordt uitgevoerd bij het uitvoeren van de opdracht.

  • --nologo|--no-logo|--no-banner

    Onderdrukt de .NET en MTP opstartbanners. De -nologo en /nologo formulieren en de DOTNET_NOLOGO omgevingsvariabele worden ook ondersteund.

    Beschikbaar in de MTP-modus vanaf .NET 11 preview 7.

  • --no-ansi

    Schakelt het uitvoeren van ANSI-escapetekens naar het scherm uit.

  • --no-progress

    Hiermee schakelt u de voortgang van de rapportage uit op het scherm.

  • --no-artifact-post-processing

    Schakelt naverwerking van compatibele artefacten uit nadat een uitvoering met meerdere modules is uitgevoerd. Vanaf .NET 11 RC 1 en MTP 2.4 kunnen geregistreerde artefacten na processors compatibele rapporten combineren, zoals TRX-resultaten. Als naverwerking mislukt, behoudt de SDK de oorspronkelijke artefacten en de afsluitcode voor de test.

  • --output <VERBOSITY_LEVEL>

    Hiermee geeft u de uitbreiding van de uitvoer voor testresultaten. Geldige waarden zijn Minimal, Normal en Detailed. De standaardwaarde is Normal. Minimal vereist MTP 2.4 preview.

  • --show-test-results <OUTCOME>

    Selecteert resultaatblokken op resultaat. In MTP 2.4 preview, gebruik passed, failed, , skipped, allof none. De failed waarde bevat ook fouten, time-outs en annuleringen.

    Combineer passed, faileden skipped met komma's, spaties of herhaalde --show-test-results opties. Combineer of none met een andere waarde nietall. Met deze expliciete optie wordt de --output voorinstelling overschreven, ongeacht de optievolgorde.

  • --list-tests [text|json]

    Hiermee worden gedetecteerde tests weergegeven zonder deze uit te voeren. Laat de waarde weg of geef deze op text voor uitvoer die door mensen kan worden gelezen. Vanaf .NET 11 Preview 7 geeft u json op voor een geversied JSON-document dat test op assembly, doelframework en architectuur en beschikbare id's, bronlocaties, methoden, parameters en eigenschappen bevat.

  • --no-launch-profile

    Probeer launchSettings.json niet te gebruiken om de toepassing te configureren. launchSettings.json Standaard wordt gebruikt, waarmee omgevingsvariabelen en opdrachtregelargumenten kunnen worden toegepast op het uitvoerbare testbestand.

  • --no-launch-profile-arguments

    Gebruik geen argumenten die zijn opgegeven in commandLineArgs het startprofiel om de toepassing uit te voeren.

  • --device <DEVICE_ID>

    Selecteert een apparaat, emulator of simulator voor elk doelframework in een Android- of iOS-testproject. Het MTP-pad ondersteunt ook macOS- en Mac Catalyst-testprojecten. Als invoer interactief is en er meer dan één apparaat beschikbaar is, dotnet test kunt u er een selecteren.

    Beschikbaar vanaf .NET 11 preview 6. Voor projecten met meerdere doelen gebruikt u .NET 11 RC 2 of hoger, zodat apparaatdetectie elk doelframework correct evalueert. WebAssembly-testprojecten voor browsers worden niet ondersteund door deze optie.

  • --list-devices

    Toont beschikbare apparaten voor een project zonder tests uit te voeren. Geef een project op in plaats van een oplossing.

    Beschikbaar vanaf .NET 11 preview 7.

  • --collect-test-map en --affected-tests

    Verzamel een testoverzicht van een opslagplaats of voer tests uit die worden beïnvloed door een wijziging. Voor deze experimentele opties is een afzonderlijk gedistribueerde extensie en de DOTNET_CLI_ENABLE_AFFECTED_TESTS=1 omgevingsvariabele vereist. U kunt de twee opties niet combineren. Werkstromen voor betrokken tests bieden ook geen ondersteuning voor apparaattests, parallelle testmodules of beleidsregels voor minimale tests.

    Verkrijgbaar vanaf .NET 11 RC 1.

  • --property:<NAME>=<VALUE>

    Hiermee stelt u een of meer MSBuild-eigenschappen in. Geef meerdere eigenschappen op door de optie te herhalen:

    --property:<NAME1>=<VALUE1> --property:<NAME2>=<VALUE2>
    

    De korte vorm -p kan worden gebruikt voor --property. Hetzelfde geldt voor /property:property=value en de korte vorm is /p. Meer informatie over de beschikbare argumenten vindt u in de dotnet msbuild-documentatie.

  • -?|-h|--help

    Hiermee wordt een beschrijving afgedrukt van hoe de opdracht gebruikt moet worden.

  • args

    Hiermee geeft u extra argumenten op die moeten worden doorgegeven aan de testtoepassing(en). Gebruik een spatie om meerdere argumenten te scheiden. Zie MTP-overzicht en MTP-functies voor meer informatie en voorbeelden over wat u moet doorgeven.

    Aanbeveling

    Als u extra argumenten wilt opgeven voor specifieke projecten, gebruikt u de eigenschap TestingPlatformCommandLineArguments MSBuild. Deze eigenschap is vooral handig wanneer uw oplossing testframeworks (bijvoorbeeld MSTest en xUnit.net) combineert of wanneer slechts enkele projecten verwijzen naar een bepaalde extensie. Zie Oplossingen met gemengde testframeworks of extensies voor meer informatie.

Opmerking

Als u traceringslogboeken naar een bestand wilt inschakelen, gebruikt u de omgevingsvariabele DOTNET_CLI_TEST_TRACEFILE om het pad naar het traceringsbestand op te geven.

Vanaf .NET 11 RC 1, dotnet test -bl gebruikt u één MSBuild-sessie voor meerdere projecten, meerdere gerichte en apparaatuitvoeringen, zodat het binaire logboek de volledige build bevat.

Uitvoer- en annuleringsgedrag

Vanaf .NET 11 Preview 6 toont interactieve ANSI-uitvoer tests die momenteel worden uitgevoerd en rapporten per assembly-testaantal. De voortgangsweergave blijft uitgeschakeld wanneer uitvoer wordt omgeleid, ANSI- of voortgangsuitvoer is uitgeschakeld of de omgeving niet interactief is.

Vanaf .NET 11 Preview 6 stopt de eerste Ctrl C+ met het plannen van nieuwe testtoepassingen en vraagt de samenwerking aan. Druk nogmaals op Ctrl+C om de onderliggende processen onmiddellijk te beëindigen. Een afgebroken uitvoering wordt afgesloten met code 3.

Live test-hostuitvoer vereist een MTP-host die protocol 1.1 of hoger ondersteunt. Oudere hosts behouden uitvoer vastgelegd en afspelen voor een mislukte module. Vanaf .NET 11 Preview 7 worden bij mislukte samenvattingen vastgelegde standaarduitvoer langer dan 40 regels afgekapt tot de eerste 30 en laatste 10 regels. Diagnostische logboeken behouden de volledige uitvoer.

Voor uitvoeringen dotnet test met meerdere modules evalueert u het nultestresultaat voor de volledige uitvoering vanaf .NET 11 preview 7. Een module zonder tests mislukt de uitvoering niet als een andere module tests uitvoert, tenzij een expliciet beleid voor minimumtests meer tests vereist.

Resultaten en artefacten

Wanneer de uitvoerindeling voor SDK-artefacten is ingeschakeld, plaatst .NET 11 RC 1 en latere versies standaard MTP-rapporten, dekkingsbestanden en diagnostische gegevens<ArtifactsPath>/test/<project>/<pivot>. Een expliciete --results-directory of --results-directory-layout prioriteit heeft.

Vanaf .NET 11 RC 1 en MTP 2.4 kunnen compatibele extensies na het proces artefacten na een uitvoering met meerdere modules uitvoeren. De TRX-extensie kan bijvoorbeeld een samengevoegd rapport maken met behoud van de rapporten per module. Zie MTP-testrapporten voor uitbreidings- en rapportvereisten.

Argumenten doorsturen naar de testtoepassing

dotnet test stuurt een token door dat niet wordt herkend aan de testtoepassing. Wanneer een herkende optie wordt weergegeven tussen een niet-herkende optienaam en de bijbehorende waarde, kan het verwijderen van de herkende optie wijzigen hoe de resttokens worden gebonden aan opties in de testtoepassing. Als u deze dubbelzinnigheid wilt voorkomen, plaatst u argumenten voor testtoepassingen na een letterlijke tekst --:

dotnet test --results-directory TestResults -- --report-trx --report-trx-filename A.trx

In het voorgaande voorbeeld is het Microsoft.Testing.Extensions.TrxReport pakket vereist, ofwel als een directe pakketreferentie of via een test-SDK-configuratie die het bevat.

Hetzelfde parsergedrag is van toepassing op dotnet run en dotnet build. Zie Argumenten doorsturen naar de toepassing in de dotnet run verwijzing voor een gedetailleerd voorbeeld.

Minimumaantallen voor hele uitvoering en per module

-- Het --minimum-expected-testsscheidingsteken bepaalt het bereik van de optie:

  • Argumenten vóór-- zijn globaal. De dotnet test orchestrator interpreteert ze voor de hele uitvoering.
  • Argumenten na-- zijn lokaal. dotnet test stuurt ze door naar elke testmodule, zodat elke module ze onafhankelijk van elkaar toepast.

Omdat --minimum-expected-tests deze beschikbaar is in beide bereiken, kunt u een minimum vereisen voor de hele uitvoering, voor elke module of beide:

dotnet test --minimum-expected-tests 5 -- --minimum-expected-tests 2

Voor de voorgaande opdracht zijn ten minste 5 tests vereist voor de hele uitvoering en ten minste twee tests in elke testmodule.

Het aantal twee bereiken heeft tests verschillend overgeslagen:

Scope Tellen overgeslagen tests mee tot het minimum?
Globaal Yes. Het dotnet test geaggregeerde totaal omvat overgeslagen tests.
Per module No. MTP sluit overgeslagen tests uit van het aantal tests dat is uitgevoerd.

Vanaf de .NET 11 SDK wordt de beoordeling met nultests voor de hele uitvoering eenmaal bepaald op basis van de geaggregeerde resultaten. Een module die overeenkomt met geen tests, bijvoorbeeld vanwege --test-modules of een globale --filter, wordt afgesloten met code 8 (ZeroTests), maar die code wordt genormaliseerd tot succes voordat de resultaten worden samengevoegd. Als gevolg hiervan mislukt één lege module niet de hele uitvoering, hoewel de module de Exit code: 8 diagnostische gegevens in de uitvoer bewaart voor zichtbaarheid.

MTP 4.3.0 en latere versies bieden --zero-tests-policy <allow-skipped|strict>. Met de standaardwaarde kan allow-skippedeen module met alle bewerkingen worden voltooid. De strict waarde behandelt overgeslagen tests als niet uitgevoerd, dus een module met alle overgeslagen modules wordt afgesloten met code 8. Geef de optie door nadat -- u deze naar elke testmodule wilt doorsturen:

dotnet test -- --zero-tests-policy strict

Wanneer u geen globaal minimum instelt, bepaalt de .NET 11 SDK het volledig uitgevoerde nultestbeoordeling afzonderlijk. Een volledig uitgevoerde uitvoering wordt afgesloten met code 8, ongeacht de waarde per module --zero-tests-policy .

Wanneer u opgeeft --minimum-expected-tests en niet aan het minimum wordt voldaan, mislukt de uitvoering met afsluitcode 9 (MinimumExpectedTestsPolicyViolation). Deze code verschilt van 8, zodat een strikter globaal of minimaal per module niet wordt verward met een lege module. Voor een minimum per module om code 9 te retourneren wanneer de module nultests uitvoert, moet de testmodule MTP 4.4.0 of een latere versie gebruiken.

Opmerking

--minimum-expected-tests 0 is ongeldig. Als u de afsluitcode nultests wilt onderdrukken, gebruikt u --ignore-exit-code 8.

Vanaf .NET 11 Preview 6, --tl--terminalloggeren --tlp worden doorgestuurd naar MSBuild in plaats van de testtoepassing. Vanaf .NET 12 Preview 1 worden de herkende -mt formulieren -multiThreaded ook doorgestuurd naar MSBuild. Als u een toepassingsoptie met een van deze namen wilt doorgeven, plaatst u deze na --.

Geef de uitvoeringsmodusopties door, zoals --help en --list-tests rechtstreeks naar dotnet test. Vanaf .NET 11 Preview 6 valideert de SDK de uitvoeringsmodus die is onderhandeld met de testtoepassing. Als een startprofiel of TestingPlatformCommandLineArguments een van deze opties injecteert, komen de aangevraagde SDK-bewerking en de toepassingsbewerking niet overeen en mislukt de uitvoering met een diagnose.

Voorbeelden

  • Voer de tests uit in de project of oplossing in de huidige map:

    dotnet test
    
  • Voer de tests uit in de TestProject project:

    dotnet test --project ./TestProject/TestProject.csproj
    
  • Voer de tests uit in de TestProjects-oplossing:

    dotnet test --solution ./TestProjects/TestProjects.sln
    
  • Voer de tests uit met behulp van TestProject.dll assembly:

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll"
    
  • Voer de tests uit met behulp van TestProject.dll assembly met de hoofdmap:

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll" --root-directory "c:\code"
    
  • Voer alle testprojecten uit waarnaar wordt verwezen door een doorkruisingsproject met .NET 11 preview 7 of hoger:

    dotnet test dirs.proj
    
  • Lijst met tests als JSON met .NET 11 Preview 7 of hoger:

    dotnet test --list-tests json
    
  • Voer een op C#-bestand gebaseerde MTP-test-app uit met .NET 12 preview 1 of hoger:

    dotnet test App.Tests.cs
    
  • Voer de tests uit in de huidige map met de extensie Microsoft Code Coverage. De testtoepassing moet verwijzen naar Microsoft.Testing.Extensions.CodeCoverage, rechtstreeks of via een test-SDK-configuratie die deze bevat:

    dotnet test --coverage
    
  • Voer de tests uit en sla resultaten op in een specifieke map:

    dotnet test --results-directory ./TestResults
    
  • Voer de tests uit met diagnostische uitvoer in een specifieke map:

    dotnet test --diagnostic-output-directory ./Diagnostics
    
  • Voer de tests uit om ervoor te zorgen dat ten minste 10 tests worden uitgevoerd:

    dotnet test --minimum-expected-tests 10
    
  • Minimaal 5 tests vereisen voor de hele uitvoering en ten minste 2 tests in elke testmodule:

    dotnet test --minimum-expected-tests 5 -- --minimum-expected-tests 2
    
  • Voer de tests uit in de TestProject project en geef het argument -bl (binair logboek) op voor msbuild:

    dotnet test --project ./TestProject/TestProject.csproj -bl
    
  • Voer de tests uit in de TestProject project en stel de eigenschap MSBuild DefineConstants in op DEV:

    dotnet test --project ./TestProject/TestProject.csproj -p:DefineConstants="DEV"
    

Zie ook