dotnet-teszt a Microsoft.Testing.Platform (MTP) használatával

A cikk a következőre vonatkozik: ✔️ .NET 10 SDK-s és újabb verzió

Név

dotnet test – .NET MTP-vel végzett egységtesztek végrehajtásához használt tesztillesztő.

Áttekintés

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

Az MTP-vel gyorsabban működik, dotnet test mint a VSTesttel. A teszthez kapcsolódó argumentumok már nem rögzítettek, mivel a teszt project(ok) regisztrált bővítményeihez vannak kötve. Emellett az MTP támogatja a borús szűrőt a tesztek futtatásakor. További információ: MTP.

Important

A bővítményspecifikus beállítások nem épülnek be az MTP-be. Minden célzott tesztalkalmazásnak regisztrálnia kell a lehetőséget biztosító bővítményt. Adja hozzá közvetlenül a bővítmény NuGet-csomagját, vagy használjon teszt SDK-konfigurációt vagy -profilt, amely tartalmazza a csomagot. Ellenkező esetben a tesztfuttatás az 5-ös kilépési kóddal meghiúsul, mert a beállítás ismeretlen. Futtassa dotnet test --help a kiválasztott tesztalkalmazások számára elérhető beállításokat, és forgatókönyv szerint tekintse meg a bővítménybeállításokat a csomag megkereséséhez.

Figyelmeztetés

Ha az MTP-n keresztül global.jsoncsatlakozik, dotnet test az összes tesztprojekt az MTP használatára számít. Hiba, ha bármelyik tesztprojekt VSTestet használ.

Verziókövetelmények

Az MTP módhoz dotnet test 10 SDK és MTP 1.7 vagy újabb .NET szükséges. A .NET 10 után hozzáadott beállítások az alábbi szakaszokban egyedi SDK-verziókövetelményekkel rendelkeznek. Egyes beállításokhoz egy újabb MTP-csomag is szükséges, mert az SDK koordinálja a teljes futtatást, miközben minden tesztalkalmazás implementálja a megfelelő képességet.

Implicit visszaállítás

Nem kell futtatnia dotnet restore, mert az összes olyan parancs implicit módon fut, amely visszaállítást igényel, például dotnet new, dotnet build, dotnet run, dotnet test, dotnet publishés dotnet pack. Az implicit visszaállítás letiltásához használja a --no-restore lehetőséget.

A dotnet restore parancs még mindig hasznos bizonyos esetekben, amikor a explicit visszaállításnak van értelme, például folyamatos integrációs buildek Azure DevOps Services vagy olyan buildrendszerekben, amelyeknek explicit módon kell szabályozni a visszaállítást.

További információ a NuGet-hírcsatornák kezeléséről: dotnet restore dokumentáció.

Important

Projekt vagy megoldás --no-restorefuttatásakor a visszaállítással létrehozott projektállapot és a obj megfelelő globális csomagok mappája is elérhető marad. A tesztelési keretrendszer és a platformcsomagok importálása az MTP-tesztalkalmazások azonosításához használt MSBuild tulajdonságokat dotnet test állítja be. A --no-build lehetőség azt is jelenti, hogy --no-restore. Ha a tesztkörnyezet beépített tesztalkalmazásokat tartalmaz, de a projekt visszaállítási állapotát nem, használja --test-modules inkább. További információért lásd No test projects were found.

Beállítások

Megjegyzés:

Egyszerre csak az alábbi lehetőségek egyikét használhatja: --project, --solution vagy --test-modules. Ezek a beállítások nem kombinálhatók. Emellett a használat --test-modulessorán nem adhatja meg --arch, , --configuration, --device--framework, --list-devices, , --os, --runtimevagy --use-current-runtime. Ezek a lehetőségek projektértékelést igényelnek, vagy nem relevánsak egy már elkészített modul esetében.

  • PROJECT_OR_TRAVERSAL_PATH

    Egy futtatandó projektet vagy bejárási projektet határoz meg. A .NET 11 Preview 7 dotnet test verziótól kezdve támogatja Microsoft.Build.Traversal a projekteket, például dirs.proja hivatkozott tesztprojekteket, és rekurzív módon futtatja őket.

    A .NET 12 előzetes verziótól kezdve az argumentum C# fájlalapú MTP-tesztalkalmazást is azonosíthat. A fájlalapú tesztalkalmazások nem támogatottak --device.

  • --project <PROJECT_PATH>

    Megadja a futtatni kívánt project fájl elérési útját (mappanév vagy teljes elérési út). Ha nincs megadva, alapértelmezés szerint az aktuális könyvtár lesz.

  • --solution <SOLUTION_PATH>

    Megadja a futtatandó megoldásfájl elérési útját (mappanév vagy teljes elérési út). Ha nincs megadva, alapértelmezés szerint az aktuális könyvtár lesz.

  • --test-modules <EXPRESSION>

    Szűri a tesztmodulokat fájlküldő használatával. Csak az adott tesztmodulokhoz tartozó tesztek futnak. Mivel ez a beállítás nem értékeli ki a projekteket, már beépített tesztalkalmazások futtatására használható, ha a projekt-visszaállítási állapot nem érhető el. A .NET 11 Előzetes verzió 6-os verziójától kezdve egy minta előtagjával ! zárja ki az egyező modulokat. Több minta pontosvesszővel való elválasztása; a rendszer figyelmen kívül hagyja az egyes minták körüli térközt.

  • --root-directory <ROOT_PATH>

    A --test-modules beállítás gyökérkönyvtárát adja meg. Csak a --test-modules beállítással használható.

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

    Meghatározza a párhuzamosan futtatható tesztmodulok maximális számát. Az alapértelmezett érték a Environment.ProcessorCount.

  • --config-file <CONFIG_FILE>

    Megadja a tesztvégrehajtáshoz használandó konfigurációs fájlt. Ha a relatív elérési út meg van adva, a rendszer az aktuális könyvtár alapján abszolút elérési útra alakítja át. A konfigurációs fájl beállításairól további információt a testconfig.jsoncímű témakörben talál.

  • --results-directory <RESULTS_DIRECTORY>

    A teszteredmények tárolására szolgáló könyvtárat adja meg. Ha a könyvtár nem létezik, létrejön. Ha a relatív elérési út meg van adva, a rendszer az aktuális könyvtár alapján abszolút elérési útra alakítja át.

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

    Meghatározza, hogy egy többmodulos futtatás hogyan rendszerezi a fájlokat az eredménykönyvtárban. Az alapértelmezett beállítás flataz összes eredményt ugyanarra a könyvtárra írja. per-module Az egyes modulok eredményeinek írása, ami megakadályozza, hogy <project>/<target-framework>_<runtime-or-architecture>az azonos fájlnévvel rendelkező jelentések felülírják egymást.

    A .NET 11 RC 1-től kezdve érhető el.

  • --diagnostic-output-directory <DIAGNOSTIC_OUTPUT_DIRECTORY>

    A diagnosztikai kimenet tárolására szolgáló könyvtárat adja meg. Ha a könyvtár nem létezik, létrejön. Ha a relatív elérési út meg van adva, a rendszer az aktuális könyvtár alapján abszolút elérési útra alakítja át.

  • --minimum-expected-tests <NUMBER>

    Az egész futtatás tesztjeinek pozitív minimális számát adja meg. Ha az összesített tesztszám kisebb a megadott minimálisnál, a tesztfuttatás a 9-es kilépési kóddal meghiúsul. A globális szám kihagyott teszteket is tartalmaz. A kilépési kódokról további információt az MTP kilépési kódjaiban talál.

    Mivel ez a beállítás korábban --megjelenik, ez egy globális (teljes körű) beállítás. Ha ehelyett minimumot szeretne megkövetelni az egyes tesztmodulokhoz, adja meg a lehetőséget -- , hogy az minden tesztmodulhoz továbbítva legyen. További információ: Teljes futás és modulonkénti minimumok.

    Megjegyzés:

    A globális minimumhoz a .NET 10 SDK (10.0.100) vagy újabb verzió szükséges.

  • --maximum-failed-tests <NUMBER>

    Leállítja a teljes futtatási műveletet, miután elérte a sikertelen, hibás, időtúllépési vagy megszakított tesztek megadott számát. A futtatás a 13-es kóddal lép ki.

    A .NET 11 Preview 7 verziótól kezdve érhető el, és MTP 2.4-es vagy újabb verziót igényel.

  • --timeout <DURATION>

    Leállítja a teljes futtatás a megadott időtartam után, miközben legalább egy tesztalkalmazás fut. Adjon meg egy pozitív számot, amelyet egy egység követ, például 500ms, 90s, 10m, 2hvagy 1d. Időtúllépéses futtatási kilépések a 3-es kóddal.

    A .NET 11 Preview 7 verziótól kezdve érhető el, és MTP 2.4-es vagy újabb verziót igényel.

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

    Beállít egy környezeti változót a tesztelési folyamathoz. Adja meg többször a beállítást több változó beállításához. A parancssori értékek felülbírálják az indítási profil értékeit.

    Használja .NET SDK 10.0.110-et vagy újabb verzióját, ha nincs indítási profil, vagy amikor megadja--no-launch-profile; a korábbi .NET 10 SDK-verzió figyelmen kívül hagyhatja a változókat ezekben az esetekben. A .NET 11 Preview 7-től kezdve a változók a képességérzékeny buildelésre, az eszközválasztásra, az üzembe helyezésre és a futtatási argumentumokra is átfolynak.

  • -a|--arch <ARCHITECTURE>

    A célarchitektúra megadása. Ez a rövidített szintaxis a futtatókörnyezet-azonosító (RID)beállítására szolgál, ahol a megadott érték az alapértelmezett RID-vel van kombinálva. Egy win-x64 gépen például a --arch x86 megadásával a RID win-x86lesz. Ha ezt a lehetőséget használja, ne használja a -r|--runtime lehetőséget. .NET 7. előzetes verzió óta érhető el.

  • --artifacts-path <ARTIFACTS_DIR>

    A végrehajtott parancs összes buildkimeneti fájlja a megadott elérési út alatti almappákba kerül, projekt szerint elválasztva. További információ: Artifacts Kimeneti elrendezés. Ezt a lehetőséget és a megadott értéket explicit módon kaszkádoltnak kell lennie minden olyan dotnet parancsban, amely egy másik dotnet parancs kimenetétől függ, például a használat dotnet build --no-restore és dotnet publish --no-builda . .NET 8 SDK óta érhető el.

    Az MTP módhoz .NET 11-től kezdve érhető el.

  • -c|--configuration <CONFIGURATION>

    Meghatározza a buildkonfigurációt. A legtöbb projekt alapértelmezett értéke Debug, de felülbírálhatja a buildkonfigurációs beállításokat a project.

  • -f|--framework <FRAMEWORK>

    A cél-keretrendszer cél-keretrendszer-monikerje (TFM) a tesztek futtatásához. A cél keretrendszert a project fájlban is meg kell adni.

  • --os <OS>

    A cél operációs rendszer (OS) megadása. Ez a rövidített szintaxis a futtatókörnyezet-azonosító (RID)beállítására szolgál, ahol a megadott érték az alapértelmezett RID-vel van kombinálva. Egy win-x64 gépen például a --os linux megadásával a RID linux-x64lesz. Ha ezt a lehetőséget használja, ne használja a -r|--runtime lehetőséget. 6 .NET óta érhető el.

  • -r|--runtime <RUNTIME_IDENTIFIER>

    A tesztelni kívánt futtatókörnyezet.

    Rövid -r .NET SDK 7-től kezdve érhető el.

    Megjegyzés:

    A globális RuntimeIdentifier (explicit vagy via --arch, --runtimevagy --os) tulajdonsággal rendelkező megoldások tesztjeinek futtatása nem támogatott. A RuntimeIdentifier beállítása egyéni project szinten.

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

    A visszaállítás és a buildelés során az aktuális futtatókörnyezetet használja cél futtatókörnyezetként.

    A .NET 11 Előzetes verzió 6-os verziójától kezdve érhető el. Ezzel a beállítással --test-modulesnem kombinálható.

  • -v|--verbosity <LEVEL>

    A parancs részletességi szintjét állítja be. Az engedélyezett értékek a következőkq[uiet]: , m[inimal], n[ormal]d[etailed]és diag[nostic]. További információért lásd LoggerVerbosity.

  • --no-build

    Azt adja meg, hogy a teszt project nem készült el a futtatás előtt. Implicit módon beállítja a --no-restore jelzőt is.

  • --no-dependencies

    Kihagyja a projekt-projekthivatkozások készítését.

    A .NET 11 Előzetes verzió 6-os verziójától kezdve érhető el.

  • --no-restore

    Megadja, hogy a parancs futtatásakor az implicit visszaállítás nem lesz végrehajtva.

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

    Letiltja a .NET és az MTP indítási szalagcímeit. Az -nologo űrlapok és /nologo a DOTNET_NOLOGO környezeti változó is támogatott.

    MTP módban érhető el a .NET 11 Előzetes verzió 7-es verziójától kezdve.

  • --no-ansi

    Letiltja az ANSI-feloldó karakterek képernyőre történő kimenetét.

  • --no-progress

    Letiltja a jelentéskészítési folyamatot a képernyőn.

  • --no-artifact-post-processing

    Többmodulos futtatás után letiltja a kompatibilis összetevők utófeldolgozását. A .NET 11 RC 1-es és MTP 2.4-es verziótól kezdve a regisztrált összetevők utóprocesszorai kompatibilis jelentéseket, például TRX-eredményeket kombinálhatnak. Ha az utófeldolgozás sikertelen, az SDK megőrzi az eredeti összetevőket és a teszt kilépési kódját.

  • --output <VERBOSITY_LEVEL>

    A teszteredmények kimeneti részletességét adja meg. Az érvényes értékek a következők: Minimal, Normalés Detailed. Az alapértelmezett érték a Normal. Minimal MTP 2.4 előzetes verziót igényel.

  • --show-test-results <OUTCOME>

    Az eredményblokkokat az eredmény alapján választja ki. Az MTP 2.4 előzetes verziójában használja passeda , failed, skipped, allvagy none. Az failed érték hibákat, időtúllépéseket és lemondásokat is tartalmaz.

    Egyesítheti passeda failedskipped vesszőkkel, szóközökkel vagy ismétlődő --show-test-results beállításokkal. Ne egyesítse all vagy none más értékekkel. Ez az explicit beállítás a beállítási sorrendtől függetlenül felülbírálja az --output előre beállított beállítást.

  • --list-tests [text|json]

    A felderített teszteket futtatás nélkül listázza. Hagyja ki az értéket, vagy adja meg text az ember által olvasható kimenetet. A .NET 11 Előzetes verzió 7-es verziójától kezdve adjon meg json egy verziójú JSON-dokumentumot, amely szerelvény, cél keretrendszer és architektúra szerint csoportosítja a teszteket, és elérhető azonosítókat, forráshelyeket, metódusokat, paramétereket és tulajdonságokat tartalmaz.

  • --no-launch-profile

    Ne próbálja meg launchSettings.json használni az alkalmazás konfigurálásához. Alapértelmezés szerint launchSettings.json a rendszer környezeti változókat és parancssori argumentumokat alkalmazhat a végrehajtható tesztre.

  • --no-launch-profile-arguments

    Ne használja az indítási profilban megadott commandLineArgs argumentumokat az alkalmazás futtatásához.

  • --device <DEVICE_ID>

    Kiválaszt egy eszközt, emulátort vagy szimulátort egy Android- vagy iOS-tesztprojekt minden cél-keretrendszeréhez. Az MTP-útvonal a macOS és a Mac Catalyst tesztprojekteket is támogatja. Ha a bemenet interaktív, és több eszköz is elérhető, dotnet test megkérheti, hogy válasszon egyet.

    A .NET 11 Előzetes verzió 6-os verziójától kezdve érhető el. Több célzott projektek esetén használja a .NET 11 RC 2 vagy újabb verziót, hogy az eszközfelderítés megfelelően értékelje ki az egyes cél-keretrendszereket. A Böngésző WebAssembly tesztprojekteket ez a beállítás nem támogatja.

  • --list-devices

    A projektekhez elérhető eszközök listázása tesztek futtatása nélkül. Adjon meg egy projektet megoldás helyett.

    A .NET 11 Preview 7-től kezdve érhető el.

  • --collect-test-map és --affected-tests

    Gyűjtse össze az adattár teszttérképét, vagy futtassa a módosítás által érintett teszteket. Ezek a kísérleti lehetőségek külön elosztott bővítményt és környezeti változót DOTNET_CLI_ENABLE_AFFECTED_TESTS=1 igényelnek. A két lehetőség nem kombinálható. Az érintett tesztelési munkafolyamatok nem támogatják az eszköztesztelést, a párhuzamos tesztmodulokat és a minimális tesztelési szabályzatokat.

    A .NET 11 RC 1-től kezdve érhető el.

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

    Beállít egy vagy több MSBuild tulajdonságot. Adjon meg több tulajdonságot a beállítás megismétlésével:

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

    A rövid űrlap -p használható a következőhöz --property: . Ugyanez vonatkozik /property:property=value, és rövid formája /p. Az elérhető argumentumokról további információt a dotnet msbuild dokumentációjában talál.

  • -?|-h|--help

    A parancs használatának leírását nyomtatja ki.

  • args

    A tesztalkalmazás(ok) számára továbbítandó további argumentumokat adja meg. Több argumentum elválasztásához használjon szóközt. A továbbadásról további információt és példákat az MTP áttekintésében és az MTP funkcióiban talál.

    Jótanács

    Ha további argumentumokat szeretne megadni adott projektekhez, használja az TestingPlatformCommandLineArguments MSBuild tulajdonságot. Ez a tulajdonság különösen akkor hasznos, ha a megoldás teszt-keretrendszereket (például MSTestet és xUnit.net) kever, vagy ha csak bizonyos projektek hivatkoznak egy adott bővítményre. További információ: Megoldások vegyes tesztelési keretrendszerekkel vagy bővítményekkel.

Megjegyzés:

A nyomkövetési naplózás fájlba való engedélyezéséhez használja a DOTNET_CLI_TEST_TRACEFILE környezeti változót a nyomkövetési fájl elérési útjának megadásához.

A .NET 11 RC 1-től dotnet test -bl kezdve egy MSBuild munkamenetet használ többprojektes, több-célzott és eszközfuttatásokhoz, így a bináris napló tartalmazza a teljes buildet.

Kimeneti és lemondási viselkedés

A .NET 11 Preview 6-os verziójától kezdve az interaktív ANSI-kimenet az aktuálisan futó teszteket és a szerelvényenkénti tesztszámokat mutatja. A folyamatmegjelenítés le lesz tiltva, ha a kimenet átirányításra kerül, az ANSI vagy a folyamat kimenete le van tiltva, vagy a környezet nem interaktív.

A .NET 11 Preview 6-os verziójától kezdve az első Ctrl+C leállítja az új tesztalkalmazások ütemezését, és együttműködési lemondást kér. Nyomja le ismét a CtrlCbillentyűkombinációt+ a gyermekfolyamatok azonnali leállításához. Megszakított futtatási kilépések a 3-es kóddal.

Az élő tesztgazda kimenetéhez olyan MTP-gazdagépre van szükség, amely támogatja az 1.1-es vagy újabb protokollt. A régebbi gazdagépek rögzítik a kimenetet, és visszajátszják egy sikertelen modulhoz. A .NET 11 preview 7-től kezdődően a hibaösszesítők 40 sornál hosszabb standard kimenetet csonkítanak az első 30 és az utolsó 10 sorig; a diagnosztikai naplók megőrzik a teljes kimenetet.

Többmodulos futtatások dotnet test esetén a teljes futtatás során kiértékeli a nulla teszt eredményét a .NET 11 Előzetes verzió 7-es verziójával kezdődően. A teszt nélküli modulok nem hajtják végre a futtatást, ha egy másik modul sikeresen végrehajtja a teszteket, kivéve, ha egy explicit minimális tesztelési szabályzat több tesztet igényel.

Eredmények és összetevők

Ha az SDK-összetevők kimeneti elrendezése engedélyezve van, .NET 11 RC 1 és újabb verziók alapértelmezés szerint MTP-jelentéseket, lefedettségi fájlokat és diagnosztikát helyeznek el<ArtifactsPath>/test/<project>/<pivot>. Explicit --results-directory vagy --results-directory-layout elsőbbséget élvez.

A .NET 11 RC 1-es és MTP 2.4-es verziótól kezdve a kompatibilis bővítmények többmodulos futtatásból is feldolgozhatják az összetevőket. A TRX-bővítmény például egyesített jelentést hozhat létre a modulonkénti jelentések megőrzése mellett. A bővítmény- és jelentéskövetelményekről lásd az MTP-tesztjelentéseket.

Argumentumok továbbítása a tesztalkalmazáshoz

dotnet test továbbít minden olyan jogkivonatot, amelyet nem ismer fel a tesztalkalmazásnak. Ha egy felismert beállítás egy ismeretlen beállítás neve és értéke között jelenik meg, a felismert beállítás eltávolítása megváltoztathatja, hogy a maradék jogkivonatok hogyan kötődnek a tesztalkalmazás beállításaihoz. A kétértelműség elkerülése érdekében helyezze el a tesztalkalmazás argumentumait egy literál --után:

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

Az előző példához a Microsoft.Testing.Extensions.TrxReport csomag közvetlen csomaghivatkozásként vagy egy azt tartalmazó teszt SDK-konfiguráción keresztül szükséges.

Ugyanez az elemzési viselkedés vonatkozik a és dotnet runa dotnet build . Részletes példa: Argumentumok továbbítása az alkalmazásnak a dotnet run hivatkozásban.

Teljes körű és modulonkénti minimumok

A --minimum-expected-testsbeállítás hatókörét az -- elválasztó határozza meg:

  • Az előző-- argumentumok globálisak. A dotnet test vezénylő az egész futásra értelmezi őket.
  • A következő-- argumentumok helyiek. dotnet test továbbítja őket az egyes tesztmodulokhoz, így minden modul egymástól függetlenül alkalmazza őket.

Mivel --minimum-expected-tests mindkét hatókörben elérhető, az összes modulhoz vagy mindkettőhöz megkövetelheti a teljes futtatás minimális értékét:

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

Az előző parancs legalább 5 tesztet igényel az egész futtatás során, és legalább 2 tesztet minden tesztmodulban.

A két hatókör száma eltér a kihagyott tesztek számával:

Scope A kihagyott tesztek a minimálisra számítanak?
Globális Yes. Az dotnet test összesített összeg kihagyott teszteket tartalmaz.
Modulonként No. Az MTP kizárja a kihagyott teszteket a futtatott tesztek számából.

A .NET 11 SDK-tól kezdve a teljes futtatás nullatesztes ítéletét egyszer kell eldönteni az összesített eredmények alapján. Egy olyan modul, amely nem felel meg a teszteknek, például egy --test-modules globális vagy egy globális --filter, a 8-es kóddal (ZeroTests) kilép, de a kód az eredmények összesítése előtt normalizálódik a sikeresre. Ennek eredményeképpen egyetlen üres modul nem hiúsul meg az egész futtatás során, bár a modul a diagnosztikát Exit code: 8 a kimenetben tartja a láthatóság érdekében.

Az MTP 4.3.0-s és újabb verziói biztosítják a .--zero-tests-policy <allow-skipped|strict> Az alapértelmezett érték lehetővé teszi, allow-skippedhogy egy teljesen kihagyott modul sikeres legyen. Az strict érték nem futtatottként kezeli a kihagyott teszteket, így egy teljesen kihagyott modul a 8-as kóddal lép ki. Adja meg a lehetőséget, miután -- továbbította az egyes tesztmodulok számára:

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

Ha nem állít be globális minimumot, a .NET 11 SDK külön határozza meg a teljes körű nullateszt-ítéletet. A modulonkénti értéktől függetlenül a 8-es --zero-tests-policy kóddal kihagyott teljes futtatási kilépések.

Ha megadja --minimum-expected-tests a minimális értéket, a futtatás a 9-es (MinimumExpectedTestsPolicyViolation) kilépési kóddal meghiúsul. Ez a kód különbözik a 8-tól, így a szigorúbb globális vagy modulonkénti minimum nem téveszthető össze egy üres modullal. Ahhoz, hogy egy modulonkénti minimum 9-es kódot adjon vissza, amikor a modul nulla tesztet futtat, a tesztmodulnak az MTP 4.4.0-s vagy újabb verzióját kell használnia.

Megjegyzés:

--minimum-expected-tests 0 érvénytelen. A nullatesztek kilépési kódjának letiltásához használja a következőt --ignore-exit-code 8: .

A .NET 11 6--tl--terminallogger--tlp. előzetes verziótól kezdve a rendszer a tesztalkalmazás helyett az MSBuildnek továbbítja. A .NET 12 preview 1-től kezdve a felismert -mt és -multiThreaded az űrlapok is továbbítva lesznek az MSBuildnek. Ha át szeretne adni egy alkalmazásbeállítást az alábbi nevek egyikével, helyezze el a név után --.

Adja át a végrehajtási mód beállításait, például --help és --list-tests közvetlenül a parancsnak dotnet test. A .NET 11 Preview 6-os verziójától kezdve az SDK ellenőrzi a tesztalkalmazással egyeztetett végrehajtási módot. Ha egy indítási profil vagy TestingPlatformCommandLineArguments a beállítások egyikét injektálja, a kért SDK-művelet és az alkalmazásművelet nem egyezik, és a futtatás diagnosztikával meghiúsul.

Példák

  • Futtassa a teszteket az aktuális könyvtár project vagy megoldásában:

    dotnet test
    
  • Futtassa a teszteket a TestProject project:

    dotnet test --project ./TestProject/TestProject.csproj
    
  • Futtassa a teszteket a TestProjects megoldásban:

    dotnet test --solution ./TestProjects/TestProjects.sln
    
  • Futtassa a teszteket szerelvény használatával TestProject.dll :

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll"
    
  • Futtassa a teszteket a gyökérkönyvtárral TestProject.dll szerelvény használatával:

    dotnet test --test-modules "**/bin/**/Debug/net10.0/TestProject.dll" --root-directory "c:\code"
    
  • Futtassa egy bejárási projekt által hivatkozott összes tesztprojektet a .NET 11 Előzetes verzió 7- vagy újabb verziójával:

    dotnet test dirs.proj
    
  • Tesztek listázása JSON-ként a .NET 11 Preview 7 vagy újabb verziójával:

    dotnet test --list-tests json
    
  • Futtasson egy C#-fájlalapú MTP-tesztalkalmazást a .NET 12. előzetes verziójú vagy újabb verzióval:

    dotnet test App.Tests.cs
    
  • Futtassa a teszteket az aktuális könyvtárban a Microsoft Code Coverage kiterjesztéssel. A tesztalkalmazásnak közvetlenül vagy az azt tartalmazó teszt SDK-konfiguráción keresztül kell hivatkoznia Microsoft.Testing.Extensions.CodeCoverage:

    dotnet test --coverage
    
  • Futtassa a teszteket, és tárolja az eredményeket egy adott könyvtárban:

    dotnet test --results-directory ./TestResults
    
  • Futtassa a teszteket diagnosztikai kimenettel egy adott könyvtárban:

    dotnet test --diagnostic-output-directory ./Diagnostics
    
  • Futtassa a teszteket, amelyek legalább 10 tesztet hajtanak végre:

    dotnet test --minimum-expected-tests 10
    
  • A teljes futtatás során legalább 5, az egyes tesztmodulokban pedig legalább 2 teszt szükséges:

    dotnet test --minimum-expected-tests 5 -- --minimum-expected-tests 2
    
  • Futtassa a teszteket a TestProject project, és adja meg a -bl (bináris napló) argumentumot a msbuild:

    dotnet test --project ./TestProject/TestProject.csproj -bl
    
  • Futtassa a teszteket a TestProject project, és állítsa az MSBuild DefineConstants tulajdonságot DEV értékre:

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

Lásd még