Condividi tramite


Opzioni della riga di comando di VSTest.Console.exe

VSTest.Console.exe è lo strumento da riga di comando per l'esecuzione di test. È possibile specificare diverse opzioni in qualsiasi ordine nella riga di comando. Queste opzioni sono elencate in Opzioni generali della riga di comando.

Nota

Per la compatibilità, l'adapter MSTest in Visual Studio funziona anche in modalità legacy (equivalente all'esecuzione di test con mstest.exe). In modalità legacy non può usufruire della funzionalità TestCaseFilter. L'adapter può passare alla modalità legacy quando è specificato un file testsettings, forcelegacymode è impostato su true in un file runsettings oppure usando attributi quali HostType.

Per eseguire test automatizzati in un computer basato su architettura ARM è necessario usare VSTest.Console.exe.

Aprire il prompt dei comandi per gli sviluppatori per usare lo strumento da riga di comando oppure lo strumento è disponibile in %Programmi(x86)%\Microsoft Visual Studio\<version>\<edition>\common7\ide\CommonExtensions\<Platform | Microsoft>.

Opzioni generali della riga di comando

Nella tabella seguente vengono illustrate tutte le opzioni di VSTest.Console.exe con una breve descrizione. È possibile visualizzare un riepilogo simile digitando VSTest.Console/? a una riga di comando.

Opzione Descrizione
[nomi file di test] Esegue i test dai file specificati. Per separare i nomi di file di test, usare gli spazi.
Esempi: mytestproject.dll, mytestproject.dll myothertestproject.exe
/Settings:[nome file] Eseguire i test con ulteriori impostazioni, ad esempio gli agenti di raccolta dati. Per altre informazioni, vedere Configurare unit test usando un file con estensione runsettings
Esempio: /Settings:local.runsettings
/Tests:[nome test] Esegue i test con nomi che contengono i valori specificati. Questo comando corrisponde al nome completo del test, incluso lo spazio dei nomi . Per fornire più valori, separarli con virgole.
Esempio: /Tests:TestMethod1,testMethod2
Non è possibile usare l'opzione della riga di comando /Tests con l'opzione della riga di comando /TestCaseFilter.
/Parallel Specifica che i test devono essere eseguiti in parallelo. Per impostazione predefinita, è possibile usare fino a tutti i core disponibili nel computer. È possibile configurare il numero di core da usare in un file di impostazioni.
/Enablecodecoverage Abilita l'adapter dei dati di diagnostica CodeCoverage nell'esecuzione dei test.
Usare le impostazioni predefinite se non diversamente specificato usando un file di impostazioni.
/InIsolation Esegue i test in un processo isolato.
L'isolamento rende meno probabile l'arresto del processo vstest.console.exe in caso di errore nei test, ma questi ultimi potrebbero essere più lenti.
/UseVsixExtensions Questa opzione consente al processo vstest.console.exe di usare o ignorare le eventuali estensioni VSIX installate nell'esecuzione dei test.
Questa opzione è deprecata. È possibile che a partire dalla prossima versione principale di Visual Studio questa opzione venga rimossa. Passare all'uso delle estensioni rese disponibili come pacchetto NuGet.
Esempio: /UseVsixExtensions:true
/TestAdapterPath:[percorso] Impone al processo vstest.console.exe l'uso di adattatori di test personalizzati in un percorso specificato (se disponibili) nell'esecuzione dei test.
Esempio: /TestAdapterPath:[pathToCustomAdapters]
/Platform:[tipo di piattaforma] Forza l'uso della piattaforma specificata, anziché la piattaforma determinata dal runtime corrente. Questa opzione è in grado di forzare solo le piattaforme x86 e x64 in Windows. L'opzione ARM è interrotta e genererà x64 nella maggior parte dei sistemi.
Non specificare questa opzione per l'esecuzione in runtime che non si trovano nell'elenco di valori validi, ad esempio ARM64.
I valori validi sono x86, x64 e ARM.
/Framework: [versione framework] Versione .NET di destinazione da usare per l'esecuzione dei test.
Esempi di valori sono Framework35, Framework40, Framework45, FrameworkUap10, .NETCoreApp,Version=v1.1.
TargetFrameworkAttribute viene usato per rilevare automaticamente questa opzione dall'assembly e per Framework40 impostazione predefinita quando l'attributo non è presente. È necessario specificare questa opzione in modo esplicito se si rimuove TargetFrameworkAttribute dagli assembly .NET Core.
Se il framework di destinazione viene specificato come Framework35, i test vengono eseguiti in CLR 4.0 "modalità di compatibilità".
Esempio: /Framework:framework40
/TestCaseFilter:[espressione] Esegue test corrispondenti all'espressione specificata.
<Expression> è del formato <property>=<value>[|<Espressione>].
Esempio: /TestCaseFilter:"Priority=1"
Esempio: /TestCaseFilter:"TestCategory=Nightly|FullyQualifiedName=Namespace.ClassName.MethodName"
Non è possibile usare l'opzione della riga di comando /TestCaseFilter con l'opzione della riga di comando /Tests.
Per informazioni sulla creazione e sull'uso delle espressioni, vedere il filtro TestCase.
/? Visualizza informazioni sull'utilizzo.
/Logger:[uri/nome descrittivo] Specifica un logger per i risultati di test. Specificare il parametro più volte per abilitare più logger.
Esempio: per registrare i risultati in un file dei risultati dei test di Visual Studio (TRX), usare
/Logger:trx
[; LogFileName=<Defaults to unique file name>]
/ListTests:[nome file] Elenca i test individuati dal contenitore di test specificato.
Nota: l'opzione /TestCaseFilters non ha alcun effetto quando si elencano i test, ma controlla solo i test che vengono eseguiti.
/ListDiscoverers Elenca gli agenti di individuazione test installati.
/ListExecutors Elenca gli executor di test installati.
/ListLoggers Elenca i logger di test installati.
/ListSettingsProviders Elenca i provider di impostazioni test installati.
/Blame Esegue i test in modalità di segnalazione degli errori. Questa opzione è utile per isolare i test problematici che causano l'arresto anomalo dell'host di test. Quando viene rilevato un arresto anomalo, crea un file di sequenza in TestResults/<Guid>/<Guid>_Sequence.xml che acquisisce l'ordine dei test eseguiti prima dell'arresto anomalo. Per altre informazioni, vedere l'articolo relativo alla colpa dell'agente di raccolta dati.
/Diag:[nome file] Scrive i log di traccia di diagnostica nel file specificato.
/ResultsDirectory:[percorso] Directory dei risultati dei test che verrà creata nel percorso specificato, se non esistente.
Esempio: /ResultsDirectory:<pathToResultsDirectory>
/ParentProcessId:[ID processo padre] ID del processo padre responsabile dell'avvio del processo corrente.
/Port:[porta] La porta per la connessione socket e la ricezione dei messaggi di evento.
/Collect:[nome descrittivo agente di raccolta dati] Abilita l'agente di raccolta dati per l'esecuzione dei test. Altre informazioni.

Suggerimento

Opzioni e valori non applicano la distinzione tra maiuscole e minuscole.

Esempi

La sintassi per l'esecuzione di vstest.console.exe è:

vstest.console.exe [TestFileNames] [Options]

Per impostazione predefinita, il comando restituisce 0 quando viene chiuso normalmente, anche se non vengono individuati test. Se si desidera restituire un valore diverso da zero se non vengono individuati test, usare l'opzione <TreatNoTestsAsError>true</TreatNoTestsAsError> runsettings.

Il comando seguente esegue vstest.console.exe per la libreria di test myTestProject.dll:

vstest.console.exe myTestProject.dll

Il comando seguente esegue vstest.console.exe con più file di test. Per separare i nomi di file di test, usare gli spazi:

vstest.console.exe myTestFile.dll myOtherTestFile.dll

Il comando seguente esegue vstest.console.exe con diverse opzioni. Esegue i test indicati nel file myTestFile.dll in un processo isolato e usa le impostazioni specificate nel file Local.RunSettings. Esegue inoltre solo i test contrassegnati "Priority=1" e registra i risultati in un file con estensione trx.

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

Il comando seguente esegue vstest.console.exe con l'opzione per la /blame libreria di test myTestProject.dll:

vstest.console.exe myTestFile.dll /blame

Se si verifica un arresto anomalo dell'host di test, viene generato il file sequence.xml . Il file contiene nomi completi dei test nella sequenza di esecuzione fino a e include il test specifico in esecuzione al momento dell'arresto anomalo.

Se non è presente alcun arresto anomalo dell'host di test, il file sequence.xml non verrà generato.

Esempio di file di sequence.xml generato:

<?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>

Esempio UWP

Per la piattaforma UWP, è necessario fare riferimento al file appxrecipe anziché a una DLL.

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