Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Tento článek poskytuje přehled o příkazu dotnet test
příkazového řádku, včetně jeho kompatibility v minulosti s VSTest i Microsoft.Testing.Platform (MTP).
Příkaz dotnet test
funguje ve dvou primárních režimech:
-
Režim VSTest : Jedná se o výchozí režim pro
dotnet test
a byl jediným dostupným režimem před sadou .NET 10 SDK. Je primárně určen pro VSTest, ale může také spouštět Microsoft.Testing.Platform test prostřednictvím balíčku NuGet Microsoft.Testing.Platform.MSBuild . - Režim Microsoft.Testing.Platform : Zavedený se sadou .NET 10 SDK, tento režim výhradně podporuje testovací aplikace vytvořené pomocí platformy Microsoft.Testing.Platform.
Návod
Referenční informace k rozhraní příkazového řádku najdete v dotnet test.
Režim VSTestu dotnet test
VSTest byl dlouhou dobu jedinou testovací platformou v .NET. V důsledku toho dotnet test
byl výhradně navržen pro VSTest se všemi možnostmi příkazového řádku přizpůsobenými VSTestu.
Proces zahrnuje vyvolání VSTest
cíle MSBuild, což spustí další interní cíle a nakonec spustí vstest.console. Všechny dotnet test
možnosti příkazového řádku se převádějí na jejich ekvivalenty ve vstest.console.
Spouštění projektů MTP v režimu VSTest
dotnet test
byl navržen tak, aby spouštěl projekty VSTest v režimu VSTest. Projekty MTP však můžete spouštět v dotnet test
režimu VSTest pomocí balíčku Microsoft.Testing.Platform.MSBuild . Z pohledu uživatele je tato podpora povolena nastavením TestingPlatformDotnetTestSupport
vlastnosti MSBuild na true
(je false
to ve výchozím nastavení z důvodu zpětné kompatibility). Pokud je tato vlastnost nastavena na true
, Microsoft.Testing.Platform.MSBuild změní VSTest
cílové chování, přesměrování na volání InvokeTestingPlatform
.
InvokeTestingPlatform
je cíl MSBuild zahrnutý v Microsoft.Testing.Platform.MSBuild, který je zodpovědný za správné spouštění testovacích aplikací MTP jako spustitelných souborů. Možnosti příkazového řádku specifické pro VSTest, například --logger
, se v tomto režimu bezobslužně ignorují. Pokud chcete zahrnout argumenty specifické pro MTP, například --report-trx
, musíte je připojit za další --
. Například: dotnet test -- --report-trx
.
Poznámka:
MSTest a NUnit používají balíček Microsoft.Testing.Extensions.VSTestBridge . Nastavením EnableMSTestRunner
nebo EnableNUnitRunner
(což povoluje Microsoft.Testing.Platform) bude váš testovací projekt podporovat jak VSTest, tak Microsoft.Testing.Platform.
Pokud v tomto scénáři použijete režim dotnet test
VSTest a nenastavíte TestingPlatformDotnetTestSupport
hodnotu true, v podstatě běžíte zcela s VSTest, jako kdyby EnableMSTestRunner
a EnableNUnitRunner
nejsou nastaveny na true.
Poznámka:
Důrazně doporučujeme nastavit TestingPlatformDotnetTestSupport
vlastnost v Directory.Build.props
. Tím zajistíte, že ho nemusíte přidávat do každého testovacího souboru projektu jednotlivě. Kromě toho zabraňuje riziku zavedení nového testovacího projektu, který nenastaví tuto vlastnost, což může vést k řešení, ve kterém některé projekty používají VSTest, zatímco jiné používají Microsoft.Testing.Platform. Tato smíšená konfigurace nemusí fungovat správně a je to nepodporovaný scénář.
Následující seznam popisuje možnosti příkazového dotnet test
řádku příkazu v režimu VSTest, které podporuje Microsoft.Testing.Platform. Tyto možnosti jsou specifické pro proces sestavení a nejsou předány službě VSTest, proto fungují s MTP.
-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>
Návod
Argumenty příkazového řádku testovací aplikace můžete přizpůsobit pomocí TestingPlatformCommandLineArguments
vlastnosti MSBuild:
<PropertyGroup>
...
<TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments>
</PropertyGroup>
Další informace týkající se spouštění projektů MTP v režimu VSTest naleznete dotnet test
v tématu Použití Microsoft.Testing.Platform s režimem VSTest .dotnet test
Pokročilé technické podrobnosti
V režimu dotnet test
VSTest se --
používá k označení argumentů RunSettings. Původně byl dotnet test
navržen tak, aby tyto argumenty předal jako vlastnost MSBuild nazvanou VSTestCLIRunSettings
. Proto při spouštění testovacích aplikací MTP v režimu VSTest znovu použijeme hodnotu VSTestCLIRunSettings
, která představuje "argumenty aplikace".
Kombinování VSTest a Microsoft.Testing.Platform (MTP)
Při spuštění dotnet test
v režimu VSTest se doporučuje vyhnout zahrnutí VSTest i Microsoft.Testing.Platform do stejného řešení.
Tento scénář není oficiálně podporovaný a měli byste vědět o následujících situacích:
- Možnosti příkazového řádku specifické pro VSTest budou platit pouze pro projekty VSTest, a ne pro testovací aplikace MTP.
- Možnosti příkazového řádku specifické pro MTP zadané po
--
budou považovány za argumenty RunSettings pro projekty VSTest.
Klíčové poznatky
- Pokud chcete spouštět testovací aplikace MTP v
dotnet test
režimu VSTest, měli byste použítMicrosoft.Testing.Platform.MSBuild
, předat možnosti příkazového řádku specifické pro MTP za extra--
a nastavitTestingPlatformDotnetTestSupport
natrue
. - Možnosti příkazového řádku orientované na VSTest jsou bezobslužně ignorovány.
Kvůli těmto problémům platforma .NET zavedla nový dotnet test
režim určený speciálně pro MTP. Doporučujeme uživatelům MTP přejít z režimu VSTest dotnet test
do nového režimu pomocí sady .NET 10 SDK.
Režim platformy Microsoft.Testing.Platform (MTP) dotnet test
Aby se vyřešily problémy, ke kterým došlo při spuštění dotnet test
STP v režimu VSTest, platforma .NET zavedla v sadě .NET 10 SDK nový režim, který je speciálně navržený pro MTP.
Pokud chcete tento režim povolit, přidejte dotnet.config
soubor do kořenového adresáře úložiště nebo řešení.
[dotnet.test.runner]
name = "Microsoft.Testing.Platform"
Důležité
Prostředí dotnet test
pro MTP je podporováno pouze ve Microsoft.Testing.Platform
verzi 1.7 a novější.
Vzhledem k tomu, že tento režim je speciálně navržený pro Microsoft.Testing.Platform, TestingPlatformDotnetTestSupport
ani další --
nejsou vyžadovány.
Důležité
Tento režim je kompatibilní pouze s Microsoft.Testing.Platform verze 1.7.0 a novější.
Důležité
Pokud váš testovací projekt podporuje VSTest, ale nepodporuje MTP, vygeneruje se chyba.
Návod
Argumenty příkazového řádku testovací aplikace můžete přizpůsobit pomocí TestingPlatformCommandLineArguments
vlastnosti MSBuild:
<PropertyGroup>
...
<TestingPlatformCommandLineArguments>--minimum-expected-tests 10</TestingPlatformCommandLineArguments>
</PropertyGroup>