VSTest.Console.exe – možnosti příkazového řádku

VSTest.Console.exe je nástroj příkazového řádku pro spouštění testů. Na příkazovém řádku můžete zadat několik možností v libovolném pořadí. Tyto možnosti jsou uvedené v obecných možnostech příkazového řádku.

Poznámka:

Adaptér MSTest v sadě Visual Studio funguje také v zastaralém režimu (ekvivalentní spouštění testů s mstest.exe) kvůli kompatibilitě. Ve starším režimu nemůže využít funkci TestCaseFilter. Adaptér může přepnout do staršího režimu, pokud je zadán soubor testsettings , forcelegacymode je nastaven na true v souboru runsettings nebo pomocí atributů, jako je HostType.

Pokud chcete spustit automatizované testy na počítači založeném na architektuře ARM, musíte použít VSTest.Console.exe.

Otevřete příkazový řádek pro vývojáře a použijte nástroj příkazového řádku nebo ho najdete v %Program Files(x86)%\Microsoft Visual Studio\<version>\<edition>\common7\ide\CommonExtensions\<Platform | Microsoft>.

Obecné možnosti příkazového řádku

V následující tabulce jsou uvedeny všechny možnosti VSTest.Console.exe a krátké popisy. Podobný souhrn můžete zobrazit zadáním VSTest.Console/? na příkazový řádek.

Možnost Popis
[názvy testovacích souborů] Spusťte testy ze zadaných souborů. Oddělte několik názvů testovacích souborů mezerami.
Příklady: mytestproject.dll, mytestproject.dll myothertestproject.exe
/Nastavení:[název souboru] Spusťte testy s dalšími nastaveními, jako jsou kolektory dat. Další informace naleznete v tématu Konfigurace testů jednotek pomocí souboru .runsettings
Příklad: /Settings:local.runsettings
/Tests:[název testu] Spusťte testy s názvy, které obsahují zadané hodnoty. Tento příkaz odpovídá úplnému názvu testu, včetně oboru názvů. Pokud chcete zadat více hodnot, oddělte je čárkami.
Příklad: /Tests:TestMethod1,testMethod2
Možnost příkazového řádku /Tests nelze použít s možností příkazového řádku /TestCaseFilter .
/Paralelní Určuje, že testy se provádějí paralelně. Ve výchozím nastavení je možné použít až všechna dostupná jádra na počítači. Můžete nakonfigurovat počet jader, která se mají použít v souboru nastavení.
/Enablecodecoverage Povolí v testovacím běhu CodeCoverage adaptér diagnostiky dat.
Výchozí nastavení se použijí, pokud není zadáno pomocí souboru nastavení.
/Inisolation Spustí testy v izolovaném procesu.
Díky této izolaci se proces vstest.console.exe méně pravděpodobně zastaví na chybě v testech, ale testy můžou běžet pomaleji.
/UseVsixExtensions Tato možnost způsobí, že proces vstest.console.exe použije nebo přeskočí nainstalované rozšíření VSIX (pokud existuje) v testovacím spuštění.
Tato možnost je zastaralá. Od příští hlavní verze sady Visual Studio může být tato možnost odebrána. Přechod na využívání rozšíření zpřístupněných jako balíček NuGet
Příklad: /UseVsixExtensions:true
/TestAdapterPath:[path] Vynutí proces vstest.console.exe použití vlastních testovacích adaptérů ze zadané cesty (pokud existuje) v testovacím spuštění.
Příklad: /TestAdapterPath:[pathToCustomAdapters]
/Platform:[typ platformy] Vynutí použití dané platformy místo platformy určené z aktuálního modulu runtime. Tato možnost může vynutit pouze platformy x86 a x64 ve Windows. Možnost ARM je přerušená a ve většině systémů bude mít za následek x64.
Nezadávejte tuto možnost pro spuštění v modulech runtime, které nejsou v seznamu platných hodnot, jako je ARM64.
Platné hodnoty jsou x86, x64 a ARM.
/Framework: [verze architektury] Cílová verze .NET, která se má použít k provedení testu.
Příklady hodnot jsou Framework35, , Framework45Framework40, FrameworkUap10, .NETCoreApp,Version=v1.1.
TargetFrameworkAttribute se používá k automatickému rozpoznání této možnosti z sestavení a výchozí hodnota Framework40 je, když atribut není k dispozici. Tuto možnost musíte explicitně zadat, pokud odeberete TargetFrameworkAttribute ze sestavení .NET Core.
Pokud je cílová architektura zadaná jako Framework35, testy se spustí v CLR 4.0 "režim kompatibility".
Příklad: /Framework:framework40
/TestCaseFilter:[expression] Spusťte testy, které odpovídají danému výrazu.
<Výraz> je vlastnost=value>>< formátu<[|<Výraz>].
Příklad: /TestCaseFilter:"Priority=1"
Příklad: /TestCaseFilter:"TestCategory=Nightly|FullyQualifiedName=Namespace.ClassName.MethodName"
Možnost příkazového řádku /TestCaseFilter nelze použít s možností příkazového řádku /Tests .
Informace o vytvářeníach
/? Zobrazí informace o využití.
/Logger:[uri/friendlyname] Zadejte protokolovací nástroje pro výsledky testů. Pokud chcete povolit více protokolovacích souborů, zadejte parametr vícekrát.
Příklad: Pokud chcete výsledky přihlásit do souboru výsledků testů sady Visual Studio (TRX), použijte
/Logger:trx
[; LogFileName=<Defaults to unique file name>]
/ListTests:[název souboru] Zobrazí seznam zjištěných testů z daného testovacího kontejneru.
Poznámka: Tato /TestCaseFilters možnost nemá žádný vliv při výpisu testů. Řídí pouze to, které testy se spustí.
/ListDiscoverers Zobrazí seznam nainstalovaných zjišťovačů testů.
/ListExecutors Zobrazí seznam nainstalovaných exekutorů testů.
/ListLoggers Vypíše nainstalované protokolovací nástroje pro testování.
/List Nastavení Providers Zobrazí seznam nainstalovaných zprostředkovatelů nastavení testů.
/Vinu Spustí testy v režimu blame. Tato možnost je užitečná při izolování problematických testů, které způsobují chybové ukončení hostitele testu. Při zjištění chybového ukončení vytvoří sekvenční soubor, který TestResults/<Guid>/<Guid>_Sequence.xml zachycuje pořadí testů, které byly spuštěny před chybovým ukončením. Další informace najdete v tématu Kolektor dat Blame.
/Diag:[název souboru] Zapíše do zadaného souboru protokoly trasování diagnostiky.
/ResultsDirectory:[path] Pokud adresář výsledků testů neexistuje, vytvoří se v zadané cestě.
Příklad: /ResultsDirectory:<pathToResultsDirectory>
/ParentProcessId:[parentProcessId] ID procesu nadřazeného procesu zodpovědného za spuštění aktuálního procesu.
/Port:[port] Port pro připojení soketu a příjem zpráv událostí.
/Collect:[dataCollector friendlyName] Povolí kolektor dat pro testovací běh. Další informace.

Tip

Možnosti a hodnoty nerozlišují malá a velká písmena.

Příklady

Syntaxe spuštění vstest.console.exe je:

vstest.console.exe [TestFileNames] [Options]

Ve výchozím nastavení příkaz vrátí hodnotu 0, když se normálně ukončí, i když nejsou zjištěny žádné testy. Pokud chcete vrátit nenulovou hodnotu, pokud nejsou zjištěny žádné testy, použijte <TreatNoTestsAsError>true</TreatNoTestsAsError> možnost runsettings.

Následující příkaz spustí vstest.console.exe pro myTestProject.dll testovací knihovny:

vstest.console.exe myTestProject.dll

Následující příkaz spustí vstest.console.exe s více testovacími soubory. Názvy testovacích souborů oddělte mezerami:

vstest.console.exe myTestFile.dll myOtherTestFile.dll

Následující příkaz spustí vstest.console.exe s několika možnostmi. Spustí testy v souboru myTestFile.dll v izolovaném procesu a používá nastavení zadaná v souboru Local.Run Nastavení. Kromě toho spustí testy označené jako Priorita=1 a výsledky zaprotokoluje do souboru .trx .

vstest.console.exe myTestFile.dll /Settings:Local.RunSettings /InIsolation /TestCaseFilter:"Priority=1" /Logger:trx

Následující příkaz spustí vstest.console.exe s možností myTestProject.dll testovací knihovny:/blame

vstest.console.exe myTestFile.dll /blame

Pokud dojde k chybovému ukončení testovacího hostitele, vygeneruje se soubor sequence.xml . Soubor obsahuje plně kvalifikované názvy testů v jejich sekvenci provádění až do konkrétního testu, který byl spuštěn v době chybového ukončení.

Pokud nedojde k chybě testovacího hostitele, soubor sequence.xml se negeneruje.

Příklad vygenerovaného souboru sequence.xml :

<?xml version="1.0"?>
<TestSequence>
  <Test Name="TestProject.UnitTest1.TestMethodB" Source="D:\repos\TestProject\TestProject\bin\Debug\TestProject.dll" />
  <Test Name="TestProject.UnitTest1.TestMethodA" Source="D:\repos\TestProject\TestProject\bin\Debug\TestProject.dll" />
</TestSequence>

Příklad UPW

Pro UPW musí být soubor appxrecipe odkazován místo knihovny DLL.

vstest.console.exe /Logger:trx /Platform:x64 /framework:frameworkuap10 UnitTestsUWP\bin\x64\Release\UnitTestsUWP.build.appxrecipe