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 <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>]
    [--diagnostic-output-directory <DIAGNOSTIC_OUTPUT_DIRECTORY>]
    [--minimum-expected-tests <NUMBER>]
    [-a|--arch <ARCHITECTURE>]
    [-c|--configuration <CONFIGURATION>]
    [-f|--framework <FRAMEWORK>]
    [--os <OS>]
    [-r|--runtime <RUNTIME_IDENTIFIER>]
    [-v|--verbosity <LEVEL>]
    [--no-build]
    [--no-restore]
    [--no-ansi]
    [--no-progress]
    [--output <VERBOSITY_LEVEL>]
    [--no-launch-profile]
    [--no-launch-profile-arguments]
    [<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.

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.

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ó.

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 --test-moduleshasználatakor nem adható meg --arch, --configuration, --framework, --osvagy --runtime. Ezek a beállítások nem relevánsak egy már elkészített modul esetében.

  • --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.

  • --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.

  • --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>

    Meghatározza a végrehajtandó tesztek minimális számát. Ha a tesztek tényleges száma kisebb a megadott minimálisnál, a tesztfuttatás a 9-es kilépési kóddal meghiúsul. A kilépési kódokról további információt az MTP kilépési kódjaiban talál.

  • -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.

  • -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.

  • -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-restore

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

  • --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.

  • --output <VERBOSITY_LEVEL>

    A kimeneti részletességet adja meg a tesztek jelentésekor. Az érvényes értékek a következők: Normal és Detailed. Az alapértelmezett érték a Normal.

  • --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.

  • --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.

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

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

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 a teszteket az aktuális könyvtárban kódlefedettséggel:

    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
    
  • 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