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.
Ebből a cikkből megtudhatja, hogyan migrálhat a VSTestről a Microsoft.Testing.Platform platformra.
Bejelentkezés a Microsoft.Testing.Platform használatára
A migrálás első lépése a Microsoft.Testing.Platform használata.
Az összes tesztelési keretrendszerhez adjon hozzá <OutputType>Exe</OutputType> a megoldás összes tesztprojektjéhez. Ezt követően kövesse a keretrendszerre vonatkozó útmutatást.
MSTest
A Microsoft.Testing.Platformot az MSTest a 3.2.0-stól kezdve támogatja. Javasoljuk azonban, hogy frissítsen a legújabb elérhető MSTest-verzióra.
A beleegyezéshez adja hozzá <EnableMSTestRunner>true</EnableMSTestRunner> a PropertyGroup elem alá a Directory.Build.props fájlban.
Megjegyzés:
Az MSTest.Sdk használatakor alapértelmezés szerint a Microsoft.Testing.Platformot használja a rendszer, hacsak nincs <UseVSTest>true</UseVSTest> megadva.
NUnit
A Microsoft.Testing.Platformot az NUnit3TestAdapter támogatja az 5.0.0-s verziótól kezdve.
A bejelentkezéshez adja hozzá <EnableNUnitRunner>true</EnableNUnitRunner> egy PropertyGroup fájlban Directory.Build.props .
xUnit.net
A Microsoft.Testing.Platform az xunit.v3 verziótól kezdve támogatott.
Az előfizetéshez adja hozzá a <UseMicrosoftTestingPlatformRunner>true</UseMicrosoftTestingPlatformRunner> elemet egy PropertyGroup fájlban a Directory.Build.props alatt.
dotnet test
A .NET 9 SDK és korábbi verziókra való bejelentkezés
A .NET 9 SDK-ban és a korábbi verziókban nincs natív támogatás a Microsoft.Testing.Platform for dotnet test. A támogatás a VSTest-infrastruktúrára épül. Ehhez adja hozzá <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport> a PropertyGroup alá a Directory.Build.props fájlban.
Fontos
Ha ebben a módban futtatja a Microsoft.Testing.Platform támogatást, hozzá kell adnia -- az argumentumokat az dotnet test új platformargumentumoktól való elválasztásához. Például: dotnet test --no-build -- --list-tests.
A .NET 10 SDK és újabb verziókra való bejelentkezés
A .NET 10 SDK-tól kezdve natív támogatást nyújt a Microsoft.Testing.Platform. A használatához meg kell adnia a tesztfuttatót Microsoft.Testing.Platform a global.json:
{
"test": {
"runner": "Microsoft.Testing.Platform"
}
}
Fontos
Ebben a módban az extra -- már nem használatos.
Frissítse a dotnet test hívásokat
A parancssori dotnet test lehetőségek két kategóriába sorolhatók: a buildel kapcsolatos argumentumokra és a teszteléssel kapcsolatosakra.
A buildel kapcsolatos argumentumok a tesztplatform szempontjából irrelevánsak, ezért nem kell frissíteni az új platformot. A buildel kapcsolatos paraméterek a következők:
-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>
A teszthez kapcsolódó argumentumok VSTest-specifikusak, ezért az új platformnak megfelelően kell átalakítani. Az alábbi táblázat a VSTest argumentumok és az új platform közötti megfeleltetést mutatja be:
| VSTest argumentum | Új platformargumentum |
|---|---|
--test-adapter-path <ADAPTER_PATH> |
Nem releváns a Microsoft.Testing.Platform esetében |
--blame |
Nem releváns a Microsoft.Testing.Platform esetében |
--blame-crash |
--crashdump ( összeomlási memóriakép bővítményt igényel) |
--blame-crash-dump-type <DUMP_TYPE> |
--crashdump-type ( összeomlási memóriakép bővítményt igényel) |
--blame-crash-collect-always |
Nem támogatott |
--blame-hang |
--hangdump ( rendszer dump bővítményt igényel) |
--blame-hang-dump-type <DUMP_TYPE> |
--hangdump-type ( Hang dump bővítmény szükséges) |
--blame-hang-timeout <TIMESPAN> |
--hangdump-timeout (Hang dump bővítményt igényel) |
--collect <DATA_COLLECTOR_NAME> |
Az adatgyűjtőtől függ |
-d\|--diag <LOG_FILE> |
--diagnostic |
--filter <EXPRESSION> |
A kiválasztott tesztelési keretrendszertől függ |
-l\|--logger <LOGGER> |
A naplózótól függ |
--results-directory <RESULTS_DIR> |
--results-directory <RESULTS_DIR> |
-s\|--settings <SETTINGS_FILE> |
A kiválasztott tesztelési keretrendszertől függ |
-t\|--list-tests |
--list-tests |
-- <RunSettings arguments> |
--test-parameter (előállítva a VSTestBridge által) |
--collect
--collect egy általános bővíthetőségi pont a VSTestben minden adatgyűjtő esetében. A Microsoft.Testing.Platform bővíthetőségi modellje eltérő, és nincs olyan központosított argumentum, amelyet minden adatgyűjtő használ. A Microsoft.Testing.Platform használatával minden adatgyűjtő saját parancssori lehetőséget adhat hozzá. A Microsoft CodeCoverage VSTesten keresztüli futtatása például a következőhöz hasonló lehet:
dotnet test --collect "Code Coverage;Format=cobertura"
A Microsoft.Testing.Platform esetében a következő történik:
dotnet test --coverage --coverage-output-format cobertura
Fontos
Ahogy korábban már elmagyaráztuk, a Microsoft.Testing.Platform VSTest-alapú dotnet testhasználata esetén a platformnak átadni kívánt argumentumok előtt továbbiakra -- van szükség.
Tehát ez lesz dotnet test -- --coverage --coverage-output-format cobertura.
--filter
--filter A VSTest-alapú szűrő.
Az MSTest és az NUnit ugyanazt a szűrőformátumot támogatja akkor is, ha a Microsoft.Testing.Platform használatával fut.
xUnit.net nem támogatja ugyanazt a szűrőformátumot a Microsoft.Testing.Platform használatakor. A VSTest-alapú szűrőről át kell telepítenie az xunit.v3 új szűrőtámogatására, amely a következő parancssori beállítások használatával érhető el.
xUnit.net konkrét beállítások:
--filter-class--filter-not-class--filter-method--filter-not-method--filter-namespace--filter-not-namespace--filter-trait--filter-not-trait--filter-query
További információkért tekintse meg a Microsoft.Testing.Platform dokumentációját az xUnit.net számára és a lekérdezésszűrő nyelvének dokumentációját az xUnit.net számára.
--logger
A VSTestben általában "logger"-nek nevezett kifejezést a Microsoft.Testing.Platform "riporterének" nevezik. A Microsoft.Testing.Platformban a naplózás kifejezetten csak diagnosztizálás céljából történik.
Hasonlóan a --collect és --logger-hoz/-hez, a VSTest egy általános kiterjesztési pont minden naplózó (vagy a Microsoft.Testing.Platform kontextusában bármely riporter) számára. Minden Microsoft.Testing.Platform-riporter saját parancssori lehetőséget adhat hozzá, és így nincs olyan központi parancssori lehetőség, mint a VSTest --logger.
Az egyik leggyakrabban használt VSTest-naplózó a TRX-naplózó. Ezt a naplózót általában a következőképpen hívjuk:
dotnet test --logger trx
A Microsoft.Testing.Platform használatával a parancs a következő lesz:
dotnet test --report-trx
Fontos
A használatához --report-trxtelepítve kell lennie a Microsoft.Testing.Extensions.TrxReport NuGet-csomagnak.
Fontos
Ahogy korábban már elmagyaráztuk, a Microsoft.Testing.Platform VSTest-alapú dotnet testhasználata esetén a platformnak átadni kívánt argumentumok előtt továbbiakra -- van szükség.
Tehát ez lesz dotnet test -- --report-trx.
--settings
A VSTest egy --settings RunSettings-fájl megadására szolgál a tesztfuttatáshoz. A RunSettings-t nem támogatja az alapvető Microsoft.Testing.Platform, és egy modernebb testconfig.json konfigurációs fájl váltotta fel. Az MSTest és az NUnit azonban továbbra is támogatja a régi RunSettings szolgáltatást a Microsoft.Testing.Platform futtatásakor, és --settings továbbra is támogatott.
vstest.console.exe
Ha közvetlenül használja vstest.console.exe , javasoljuk, hogy cserélje le a dotnet test parancsra.
Tesztböngésző
A Visual Studio vagy a Visual Studio Code Test Explorer használatakor előfordulhat, hogy engedélyeznie kell a Microsoft.Testing.Platform támogatását.
Visual Studio
A Visual Studio Test Explorer a Microsoft.Testing.Platformot a 17.14-es verziótól kezdve támogatja. Ha egy korábbi verziót használ, előfordulhat, hogy frissítenie kell a Visual Studiót a legújabb verzióra.
Visual Studio Code
A Visual Studio Code és a C# DevKit támogatja a Microsoft.Testing.Platformot.
Azure DevOps
Az Azure DevOps-feladatok használatakor előfordulhat, hogy frissítenie kell a folyamatot a Microsoft.Testing.Platform használatára, attól függően, hogy melyik feladatot használja.
VSTest-feladat
Ha a VSTest-feladatot az Azure DevOpsban használja, lecserélheti a .NET Core-feladatra.
.NET Core CLI-feladat
Ha egyéni
argumentskerült a feladathoz, kövesse adotnet testáttelepítésére vonatkozó útmutatót.Ha a DotNetCoreCLI-feladatot anélkül használja, hogy a .NET 10 SDK-hoz és újabb verziókhoz tartozó natív Microsoft.Testing.Platform-élményt választja fájlon keresztül
global.json, úgy kell beállítania a feladatotarguments, hogy helyesen mutasson a hivatkozott eredménykönyvtárra, valamint a kért TRX-jelentésre. Például:- task: DotNetCoreCLI@2 displayName: Run unit tests inputs: command: 'test' arguments: '-- --report-trx --results-directory $(Agent.TempDirectory)