Opcje wiersza poleceń narzędzia VSTest.Console.exe

VSTest.Console.exe to narzędzie wiersza polecenia do uruchamiania testów. W wierszu polecenia można określić kilka opcji w dowolnej kolejności. Te opcje są wymienione w obszarze Ogólne opcje wiersza polecenia.

Uwaga

Adapter MSTest w programie Visual Studio działa również w trybie starszym (równoważnym z uruchamianiem testów z mstest.exe) w celu zapewnienia zgodności. W trybie starszym nie można korzystać z funkcji TestCaseFilter. Karta może przełączyć się do trybu starszego , gdy zostanie określony plik testsettings , właściwość forcelegacymode jest ustawiona na wartość true w pliku runsettings lub za pomocą atrybutów, takich jak HostType.

Aby uruchomić testy automatyczne na maszynie opartej na architekturze usługi ARM, należy użyć VSTest.Console.exe.

Otwórz wiersz polecenia dla deweloperów, aby użyć narzędzia wiersza polecenia lub możesz znaleźć narzędzie w folderze %Program Files(x86)%\Microsoft Visual Studio\version>\<<edition>\common7\ide\CommonExtensions\<Platform | Microsoft>.

Ogólne opcje wiersza polecenia

W poniższej tabeli wymieniono wszystkie opcje VSTest.Console.exe i krótkie opisy tych opcji. Podobne podsumowanie można wyświetlić, wpisując polecenie VSTest.Console/? w wierszu polecenia.

Opcja Opis
[nazwy plików testowych] Uruchamianie testów z określonych plików. Rozdziel wiele nazw plików testowych spacjami.
Przykłady: mytestproject.dll, mytestproject.dll myothertestproject.exe
/Ustawienia:[nazwa pliku] Uruchamianie testów z dodatkowymi ustawieniami, takimi jak moduły zbierające dane. Aby uzyskać więcej informacji, zobacz Konfigurowanie testów jednostkowych przy użyciu pliku .runsettings
Przykład: /Settings:local.runsettings
/Tests:[nazwa testu] Uruchom testy z nazwami, które zawierają podane wartości. To polecenie jest zgodne z pełną nazwą testu, w tym przestrzeni nazw. Aby podać wiele wartości, rozdziel je przecinkami.
Przykład: /Tests:TestMethod1,testMethod2
Opcji wiersza polecenia /Tests nie można użyć z /TestCaseFilter opcji wiersza polecenia.
/Równoległe Określa, że testy mają być wykonywane równolegle. Domyślnie można używać maksymalnie wszystkich dostępnych rdzeni na maszynie. Liczbę rdzeni do użycia w pliku ustawień można skonfigurować.
/Enablecodecoverage Włącza adapter diagnostyczny danych CodeCoverage w przebiegu testowym.
Ustawienia domyślne są używane, jeśli nie zostaną określone przy użyciu pliku ustawień.
/InIsolation Uruchamia testy w izolowanym procesie.
Ta izolacja sprawia, że proces vstest.console.exe jest mniej prawdopodobny, że zostanie zatrzymany po błędzie w testach, ale testy mogą działać wolniej.
/UseVsixExtensions Ta opcja powoduje użycie vstest.console.exe procesu lub pominięcie zainstalowanych rozszerzeń VSIX (jeśli istnieją) w przebiegu testowym.
Ta opcja jest przestarzały. Począwszy od następnej wersji głównej programu Visual Studio, ta opcja może zostać usunięta. Przejście do korzystania z rozszerzeń udostępnionych jako pakiet NuGet.
Przykład: /UseVsixExtensions:true
/TestAdapterPath:[ścieżka] Wymusza proces vstest.console.exe używania niestandardowych kart testowych z określonej ścieżki (jeśli istnieje) w przebiegu testu.
Przykład: /TestAdapterPath:[pathToCustomAdapters]
/Platform:[typ platformy] Wymusza zastosowanie danej platformy zamiast platformy określonej z bieżącego środowiska uruchomieniowego. Ta opcja może wymuszać tylko platformy x86 i x64 w systemie Windows. Opcja ARM jest uszkodzona i spowoduje, że x64 w większości systemów.
Nie należy określać tej opcji do uruchamiania w środowiskach uruchomieniowych, które nie znajdują się na liście prawidłowych wartości, takich jak ARM64.
Prawidłowe wartości to x86, x64 i ARM.
/Framework: [wersja struktury] Docelowa wersja platformy .NET do użycia na potrzeby wykonywania testów.
Przykładowe wartości to Framework35, , Framework40Framework45, FrameworkUap10, .NETCoreApp,Version=v1.1.
Element TargetFrameworkAttribute służy do automatycznego wykrywania tej opcji z zestawu i domyślnie do wartości domyślnych Framework40 , gdy atrybut nie jest obecny. Tę opcję należy określić jawnie, jeśli usuniesz atrybut TargetFrameworkAttribute z zestawów platformy .NET Core.
Jeśli platforma docelowa jest określona jako Framework35, testy są uruchamiane w środowisku CLR 4.0 "tryb zgodności".
Przykład: /Framework:framework40
/TestCaseFilter:[expression] Uruchom testy zgodne z danym wyrażeniem.
<Wyrażenie> ma format <property>=<value>[|<Wyrażenie>].
Przykład: /TestCaseFilter:"Priority=1"
Przykład: /TestCaseFilter:"TestCategory=Nightly|FullyQualifiedName=Namespace.ClassName.MethodName"
/ TestCaseFilter opcji wiersza polecenia nie można użyć z /Tests opcji wiersza polecenia.
Aby uzyskać informacje na temat tworzenia i używania wyrażeń, zobacz Filtr TestCase.
/? Wyświetla informacje o użyciu.
/Logger:[uri/friendlyname] Określ rejestrator dla wyników testów. Określ parametr wiele razy, aby włączyć wiele rejestratorów.
Przykład: aby zalogować wyniki do pliku wyników testów programu Visual Studio (TRX), użyj polecenia
/Logger:trx
[; LogFileName=<Defaults do unikatowej nazwy> pliku]
/ListTests:[nazwa pliku] Wyświetla listę odnalezionych testów z danego kontenera testów.
Uwaga: opcja /TestCaseFilters nie ma wpływu podczas wyświetlania listy testów; kontroluje tylko te, które testy są uruchamiane.
/ListDiscoverers Wyświetla listę zainstalowanych odnajdujących testy.
/ListExecutors Wyświetla listę zainstalowanych funkcji wykonawczych testów.
/ListLoggers Wyświetla listę zainstalowanych rejestratorów testów.
/List Ustawienia Providers Wyświetla listę zainstalowanych dostawców ustawień testów.
/Winić Uruchamia testy w trybie winy. Ta opcja jest pomocna w izolowaniu problematycznych testów, które powodują awarię hosta testowego. Po wykryciu awarii program tworzy w nim plik TestResults/<Guid>/<Guid>_Sequence.xml sekwencji, który przechwytuje kolejność testów, które zostały uruchomione przed awarią. Aby uzyskać więcej informacji, zobacz Blame data collector (Obwinianie modułu zbierającego dane).
/Diag:[nazwa pliku] Zapisuje dzienniki śledzenia diagnostycznego do określonego pliku.
/ResultsDirectory:[ścieżka] Katalog wyników testów zostanie utworzony w określonej ścieżce, jeśli nie istnieje.
Przykład: /ResultsDirectory:<pathToResultsDirectory>
/ParentProcessId:[parentProcessId] Identyfikator procesu nadrzędnego odpowiedzialnego za uruchomienie bieżącego procesu.
/Port:[port] Port połączenia gniazda i odbieranie komunikatów o zdarzeniach.
/Collect:[dataCollector friendlyName] Włącza moduł zbierający dane na potrzeby przebiegu testu. Więcej informacji.

Napiwek

Opcje i wartości nie są uwzględniane wielkości liter.

Przykłady

Składnia uruchamiania vstest.console.exe to:

vstest.console.exe [TestFileNames] [Options]

Domyślnie polecenie zwraca wartość 0, gdy kończy się normalnie, nawet jeśli nie zostaną odnalezione żadne testy. Jeśli chcesz zwrócić wartość inną niż zero, jeśli nie zostaną odnalezione żadne testy, użyj <TreatNoTestsAsError>true</TreatNoTestsAsError> opcji runsettings.

Następujące polecenie uruchamia vstest.console.exe dla biblioteki testowej myTestProject.dll:

vstest.console.exe myTestProject.dll

Następujące polecenie uruchamia vstest.console.exe z wieloma plikami testowymi. Rozdziel nazwy plików testowych spacjami:

vstest.console.exe myTestFile.dll myOtherTestFile.dll

Następujące polecenie uruchamia vstest.console.exe z kilkoma opcjami. Uruchamia testy w pliku myTestFile.dll w izolowanym procesie i używa ustawień określonych w pliku Local.Run Ustawienia. Ponadto uruchamia tylko testy oznaczone jako "Priority=1" i rejestruje wyniki w pliku trx .

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

Następujące polecenie uruchamia vstest.console.exe z opcją /blame biblioteki testowej myTestProject.dll:

vstest.console.exe myTestFile.dll /blame

Jeśli wystąpi awaria hosta testowego, zostanie wygenerowany plik sequence.xml . Plik zawiera w pełni kwalifikowane nazwy testów w ich sekwencji wykonywania do i w tym konkretny test, który był uruchomiony w momencie awarii.

Jeśli nie wystąpi awaria hosta testowego, plik sequence.xml nie zostanie wygenerowany.

Przykład wygenerowanego pliku 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>

Przykład platformy UWP

W przypadku platformy UWP plik appxrecipe musi być przywołyny zamiast biblioteki DLL.

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