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.
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_PATHHiermee geeft u een project of doorkruisingsproject op dat moet worden uitgevoerd. Vanaf .NET 11 Preview 7 worden
dotnet testMicrosoft.Build.Traversalprojecten ondersteund, zoalsdirs.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-modulesoptie. 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-moduleschrijft 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, of2h1d. 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-x64computer opgeeft--arch x86de RID instelt opwin-x86. Als u deze optie gebruikt, gebruikt u de optie-r|--runtimeniet. 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
dotnetopdracht die afhankelijk is van de uitvoer van een anderedotnetopdracht, bijvoorbeeld bij gebruikdotnet build --no-restoreendotnet 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-x64computer opgeeft--os linuxde RID instelt oplinux-x64. Als u deze optie gebruikt, gebruikt u de optie-r|--runtimeniet. Beschikbaar sinds .NET 6. -r|--runtime <RUNTIME_IDENTIFIER>De doelruntime om op te testen.
Korte vorm
-rbeschikbaar vanaf .NET SDK 7.Opmerking
Het uitvoeren van tests voor een oplossing met een globale
RuntimeIdentifiereigenschap (expliciet of via--arch,--runtimeof--os) wordt niet ondersteund. Stel in plaats daarvanRuntimeIdentifierin op een afzonderlijk project niveau.--use-current-runtime|--ucrGebruikt 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 zijn
q[uiet], , ,m[inimal]enn[ormal]d[etailed]diag[nostic]. Zie LoggerVerbosity voor meer informatie. --no-buildHiermee geeft u op dat de test project niet is gebouwd voordat deze wordt uitgevoerd. Ook wordt de vlag
--no-restoreimpliciet ingesteld.--no-dependenciesSlaat het bouwen van project-naar-projectverwijzingen over.
Beschikbaar vanaf .NET 11 preview 6.
--no-restoreHiermee geeft u op dat een impliciete herstelbewerking niet wordt uitgevoerd bij het uitvoeren van de opdracht.
--nologo|--no-logo|--no-bannerOnderdrukt de .NET en MTP opstartbanners. De
-nologoen/nologoformulieren en deDOTNET_NOLOGOomgevingsvariabele worden ook ondersteund.Beschikbaar in de MTP-modus vanaf .NET 11 preview 7.
--no-ansiSchakelt het uitvoeren van ANSI-escapetekens naar het scherm uit.
--no-progressHiermee schakelt u de voortgang van de rapportage uit op het scherm.
--no-artifact-post-processingSchakelt 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,NormalenDetailed. De standaardwaarde isNormal.Minimalvereist MTP 2.4 preview.--show-test-results <OUTCOME>Selecteert resultaatblokken op resultaat. In MTP 2.4 preview, gebruik
passed,failed, ,skipped,allofnone. Defailedwaarde bevat ook fouten, time-outs en annuleringen.Combineer
passed,failedenskippedmet komma's, spaties of herhaalde--show-test-resultsopties. Combineer ofnonemet een andere waarde nietall. Met deze expliciete optie wordt de--outputvoorinstelling 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
textvoor uitvoer die door mensen kan worden gelezen. Vanaf .NET 11 Preview 7 geeft ujsonop voor een geversied JSON-document dat test op assembly, doelframework en architectuur en beschikbare id's, bronlocaties, methoden, parameters en eigenschappen bevat.--no-launch-profileProbeer launchSettings.json niet te gebruiken om de toepassing te configureren.
launchSettings.jsonStandaard wordt gebruikt, waarmee omgevingsvariabelen en opdrachtregelargumenten kunnen worden toegepast op het uitvoerbare testbestand.--no-launch-profile-argumentsGebruik geen argumenten die zijn opgegeven in
commandLineArgshet 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 testkunt 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-devicesToont 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-mapen--affected-testsVerzamel 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=1omgevingsvariabele 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
-pkan worden gebruikt voor--property. Hetzelfde geldt voor/property:property=valueen de korte vorm is/p. Meer informatie over de beschikbare argumenten vindt u in de dotnet msbuild-documentatie.-
-?|-h|--helpHiermee wordt een beschrijving afgedrukt van hoe de opdracht gebruikt moet worden.
argsHiermee 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
TestingPlatformCommandLineArgumentsMSBuild. 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. Dedotnet testorchestrator interpreteert ze voor de hele uitvoering. - Argumenten na
--zijn lokaal.dotnet teststuurt 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 testVoer de tests uit in de
TestProjectproject:dotnet test --project ./TestProject/TestProject.csprojVoer de tests uit in de
TestProjects-oplossing:dotnet test --solution ./TestProjects/TestProjects.slnVoer de tests uit met behulp van
TestProject.dllassembly:dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll"Voer de tests uit met behulp van
TestProject.dllassembly 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.projLijst met tests als JSON met .NET 11 Preview 7 of hoger:
dotnet test --list-tests jsonVoer een op C#-bestand gebaseerde MTP-test-app uit met .NET 12 preview 1 of hoger:
dotnet test App.Tests.csVoer 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 --coverageVoer de tests uit en sla resultaten op in een specifieke map:
dotnet test --results-directory ./TestResultsVoer de tests uit met diagnostische uitvoer in een specifieke map:
dotnet test --diagnostic-output-directory ./DiagnosticsVoer de tests uit om ervoor te zorgen dat ten minste 10 tests worden uitgevoerd:
dotnet test --minimum-expected-tests 10Minimaal 5 tests vereisen voor de hele uitvoering en ten minste 2 tests in elke testmodule:
dotnet test --minimum-expected-tests 5 -- --minimum-expected-tests 2Voer de tests uit in de
TestProjectproject en geef het argument-bl(binair logboek) op voormsbuild:dotnet test --project ./TestProject/TestProject.csproj -blVoer de tests uit in de
TestProjectproject en stel de eigenschap MSBuildDefineConstantsin opDEV:dotnet test --project ./TestProject/TestProject.csproj -p:DefineConstants="DEV"