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 test
a .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
.
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.
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 test
való futtatásáról további információt a Microsoft.Testing.Platform használata VSTest móddal dotnet test
cí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ű VSTestCLIRunSettings
tulajdonsá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 test
VSTest 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 aztrue
legyen. - 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 adjon hozzá egy dotnet.config
fájlt az adattár vagy megoldás gyökeréhez.
[dotnet.test.runner]
name = "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>