Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk bemutatja a CLI-parancsot, beleértve a VSTest és a dotnet test Microsoft.Testing.Platform (MTP) előzménykompatibilitását is.
A dotnet test parancs két elsődleges módban működik:
-
VSTest mód: Ez az alapértelmezett mód
dotnet testa .NET 10 SDK előtt, és ez volt az egyetlen elérhető mód. Elsősorban VSTesthez készült, de Microsoft.Testing.Platform tesztet is futtathat a Microsoft.Testing.Platform.MSBuild NuGet-csomagon keresztül. - Microsoft.Testing.Platform mód: A .NET 10 SDK-val bevezetett mód kizárólag a Microsoft.Testing.Platform használatával készült tesztalkalmazásokat támogatja.
Jótanács
A parancssori felületre vonatkozó referencia: dotnet-teszt.
VSTest mód dotnet test
Hosszú ideig a VSTest volt az egyetlen tesztplatform a .NET-ben. Következésképpen dotnet test kizárólag a VSTesthez készült, összes parancssori lehetőségét is a VSTestre szabták.
A folyamat magában foglalja az VSTest MSBuild cél meghívását, amely más belső célokat aktivál a futtatáshoz, és végül a vstest.console futtatását. Az összes dotnet test parancssori beállítás a vstest.console megfelelőire lesz lefordítva.
MTP-projektek futtatása VSTest módban
dotnet test VSTest-projektek VSTest módban való futtatására lett tervezve. Az MTP-projekteket dotnet test azonban VSTest módban is futtathatja a Microsoft.Testing.Platform.MSBuild csomag használatával. A felhasználó szempontjából ez a támogatás a TestingPlatformDotnetTestSupport MSBuild tulajdonság true beállításával van engedélyezve (ez false alapértelmezés szerint van beállítva visszamenőleges kompatibilitási okokból). Amikor ez a tulajdonság be van állítva true, a Microsoft.Testing.Platform.MSBuild megváltoztatja a VSTest cél viselkedését, úgy, hogy átirányítja a hívást a InvokeTestingPlatform.
InvokeTestingPlatform Egy MSBuild-cél, amely a Microsoft.Testing.Platform.MSBuild része, amely az MTP-tesztalkalmazások végrehajthatóként való helyes futtatásáért felelős. Ebben a módban a VSTest-specifikus parancssori beállításokat, mint például --logger, a rendszer csendesen figyelmen kívül hagyja. Az MTP-specifikus argumentumokat, például --report-trx, úgy adhatja hozzá, hogy hozzáfűzi őket egy további -- után. Például: dotnet test -- --report-trx. Az MTP 1.9-ben MTP0001 kóddal rendelkező figyelmeztetés jön létre, amikor egy csendesen figyelmen kívül hagyott argumentumot észlel.
Megjegyzés:
Az MSTest és az NUnit a Microsoft.Testing.Extensions.VSTestBridge csomagot használja. A Microsoft.Testing.Platform beállításával EnableMSTestRunner vagy EnableNUnitRunner (amely lehetővé teszi) a tesztprojekt támogatja a VSTestet és a Microsoft.Testing.Platformot is.
Ebben a forgatókönyvben, ha a VSTest módot dotnet test használja, és nem igaz értékre állítja be TestingPlatformDotnetTestSupport-t, akkor lényegében teljes mértékben a VSTesttel fut, mintha EnableMSTestRunner és EnableNUnitRunner nem lennének igazra állítva.
Megjegyzés:
Erősen ajánlott beállítani a(z) TestingPlatformDotnetTestSupport tulajdonságot a(z) Directory.Build.props-ben. Ez biztosítja, hogy ne kelljen egyenként hozzáadnia minden egyes tesztprojektfájlhoz. Emellett megakadályozza egy olyan új tesztprojekt bevezetésének kockázatát, amely nem állítja be ezt a tulajdonságot, ami olyan megoldást eredményezhet, amelyben egyes projektek VSTestet használnak, míg mások a Microsoft.Testing.Platformot használják. Előfordulhat, hogy ez a vegyes konfiguráció nem működik megfelelően, és nem támogatott forgatókönyv.
Fontos
A VSTest módban futó MTP-projektek örököltnek tekinthetők a .NET 10 SDK újabb felhasználói élménye mellett. Ha a .NET 10 SDK-val fut, a Microsoft.Testing.Platform 2.-es verziójában megszűnik az ebben a módban történő futtatás támogatása. A támogatás a .NET 9 SDK-hoz és korábbi verziókhoz is elérhető marad a visszamenőleges kompatibilitás érdekében.
További információ: Migrálás MTP módba dotnet test.
Az alábbi lista a Microsoft.Testing.Platform által támogatott VSTest módban ismerteti a parancs parancssori dotnet test beállításait. Ezek a beállítások a buildelési folyamatra vonatkoznak, és nem adhatók át a VSTestnek, ezért működnek együtt az MTP-vel.
-a|--arch <ARCHITECTURE>--artifacts-path <ARTIFACTS_DIR>-c|--configuration <CONFIGURATION>-f|--framework <FRAMEWORK>-e|--environment <NAME="VALUE">--interactive--no-build--nologo--no-restore-o|--output <OUTPUT_DIRECTORY>--os <OS>-r|--runtime <RUNTIME_IDENTIFIER>-v|--verbosity <LEVEL>
Jótanács
A tesztalkalmazás parancssori argumentumait az MSBuild tulajdonságon keresztül TestingPlatformCommandLineArguments szabhatja testre:
<PropertyGroup>
...
<TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments>
</PropertyGroup>
Az MTP-projektek VSTest módban dotnet testvaló futtatásáról további információt a Microsoft.Testing.Platform használata VSTest móddal dotnet testcímű témakörben talál.
Speciális technikai részletek
dotnet test VSTest módban a -- runSettings argumentumok jelzésére szolgál. Eredetileg úgy tervezték, dotnet test hogy ezeket az argumentumokat MSBuild nevű VSTestCLIRunSettingstulajdonságként adja át. Ezért az MTP-tesztalkalmazások VSTest módban történő futtatásakor az "alkalmazásargumentumok" értékének VSTestCLIRunSettings újbóli felhasználása történik.
A VSTest és a Microsoft.Testing.Platform (MTP) keverése
Amikor dotnet test VSTest módban fut, ajánlott elkerülni, hogy a VSTest és a Microsoft.Testing.Platform egyazon megoldásban legyenek.
Ez a forgatókönyv hivatalosan nem támogatott, és tisztában kell lennie az alábbiakkal:
- A VSTest-specifikus parancssori beállítások csak a VSTest-projektekre vonatkoznak, az MTP-tesztalkalmazásokra nem.
- Az után
--megadott MTP-specifikus parancssori beállítások a VSTest-projektek RunSettings argumentumaiként lesznek kezelve.
Főbb elvitelek
- Az MTP-tesztalkalmazások
dotnet testVSTest módban való futtatásához használjaMicrosoft.Testing.Platform.MSBuild, adja meg az MTP-specifikus parancssori beállításokat az extra--után, és állítsa be úgyTestingPlatformDotnetTestSupport-t, hogy aztruelegyen. - A VSTest-orientált parancssori beállításokat a rendszer csendesen figyelmen kívül hagyja.
Ezek miatt a problémák miatt a .NET egy kifejezetten MTP-hez tervezett új dotnet test módot vezetett be. Javasoljuk az MTP-felhasználókat, hogy a .NET 10 SDK-val váltanak át a VSTest dotnet test módról az új módra.
Microsoft.Testing.Platform (MTP) mód dotnet test
Az MTP VSTest módban való futtatásakor dotnet test felmerülő problémák megoldásához a .NET új módot vezetett be a kifejezetten MTP-hez tervezett .NET 10 SDK-ban.
A mód engedélyezéséhez adja hozzá a következő konfigurációt a global.json fájlhoz:
{
"test": {
"runner": "Microsoft.Testing.Platform"
}
}
Fontos
Az MTP dotnet test élménye csak az 1.7-es verzióban és az azt követő verziókban Microsoft.Testing.Platform támogatott.
Mivel ez a mód kifejezetten a Microsoft.Testing.Platformhoz készült, sem TestingPlatformDotnetTestSupport-re, sem a további ---re nincs szükség.
Fontos
Ez a mód csak a Microsoft.Testing.Platform 1.7.0-s és újabb verziójával kompatibilis.
Fontos
Ha a tesztprojekt támogatja a VSTestet, de nem támogatja az MTP-t, hiba jön létre.
Jótanács
A tesztalkalmazás parancssori argumentumait az MSBuild tulajdonságon keresztül TestingPlatformCommandLineArguments szabhatja testre:
<PropertyGroup>
...
<TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments>
</PropertyGroup>
Migrálás MTP-módba dotnet test
A VSTest módot dotnet testhasználó MTP-felhasználók számára kevés művelet szükséges az újabb dotnet test felületre való migráláshoz:
- Adjon hozzá
testszakaszt aglobal.jsonfájlhoz a fent látható módon. - Távolítsa el
TestingPlatformDotnetTestSupportaz MSBuild tulajdonságot, mivel már nincs rá szükség. - Távolítsa el
TestingPlatformCaptureOutputésTestingPlatformShowTestsFailureMSBuild tulajdonságokat, mivel az újdotnet testmár nem használja őket. - Törölje a felesleges
--elemet, például adotnet test -- --report-trxlegyendotnet test --report-trx. - Ha például egy adott megoldást (vagy a megoldást tartalmazó könyvtárat) ad át,
dotnet test MySolution.slnennek a következőnek kell lenniedotnet test --solution MySolution.sln: . - Ha például egy adott projektet (vagy projektet tartalmazó könyvtárat) ad át,
dotnet test MyProject.csprojakkor ennek a következőnek kell lenniedotnet test --project MyProject.csproj: . - Ha egy adott dll-t ad át, például
dotnet test path/to/UnitTests.dll, akkor ez a következő lesz:dotnet test --test-modules path/to/UnitTests.dll. Vegye figyelembe, hogy a--test-modulesglobbingot is támogatja.