VSTest.Console.exe opcje wiersza polecenia
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 Ogólne opcje wiersza polecenia.
Nuta
Adapter MSTest w programie Visual Studio działa również w trybie starszym (odpowiednik uruchamiania 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 określono testsettings pliku, forcelegacymode jest ustawiona na 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 wiersza polecenia dla deweloperów, aby użyć narzędzia wiersza polecenia, lub możesz znaleźć narzędzie w %Program Files(x86)%\Microsoft Visual Studio\<wersja>\<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 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 |
/Settings:[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żywać z opcją wiersza polecenia /TestCaseFilter. |
/Parallel | 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 sprawia, że proces vstest.console.exe jest używany lub pomija zainstalowane rozszerzenia VSIX (jeśli istnieją) w przebiegu testowym. Ta opcja jest przestarzała. 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: [framework version] | Docelowa wersja platformy .NET do użycia na potrzeby wykonywania testów. Przykładowe wartości to Framework35 , Framework40 , Framework45 , FrameworkUap10 , .NETCoreApp,Version=v1.1 .Element TargetFrameworkAttribute służy do automatycznego wykrywania tej opcji z zestawu, a wartości domyślne to Framework40 , gdy atrybut nie jest obecny. Należy jawnie określić tę opcję, jeśli usuniesz TargetFrameworkAttribute z zestawów platformy .NET Core.Jeśli platforma docelowa jest określona jako Framework35, testy są uruchamiane w trybie zgodności środowiska CLR 4.0. Przykład: /Framework:framework40 |
/TestCaseFilter:[wyrażenie] | Uruchom testy zgodne z danym wyrażeniem. <wyrażenie> jest właściwością <>=<wartość>[|<Expression>]. Przykład: /TestCaseFilter:"Priority=1" Przykład: /TestCaseFilter:"TestCategory=Nightly|FullyQualifiedName=Namespace.ClassName.MethodName" Nie można użyć opcji wiersza polecenia /TestCaseFilter z opcją wiersza polecenia /Tests. Aby uzyskać informacje na temat tworzenia i używania wyrażeń, zobacz filtr TestCase. |
/? | Wyświetla informacje o użyciu. |
/Logger:[identyfikator 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=<Wartości domyślne 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; steruje tylko testami, które 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. |
/ListSettingsProviders | Wyświetla listę zainstalowanych dostawców ustawień testów. |
/Blame | 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 plik sekwencji w TestResults/<Guid>/<Guid>_Sequence.xml , który przechwytuje kolejność testów, które zostały uruchomione przed awarią. Aby uzyskać więcej informacji, zobacz Blame data collector. |
/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 nie zostanie odnaleziona żadna wartość niezerowa, użyj opcji <TreatNoTestsAsError>true</TreatNoTestsAsError>
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.RunSettings. 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