2010-10-18 10 views
37

In base a MSDN here e discusso here, è possibile utilizzare MSTest.exe per eseguire test dalla riga di comando, che è dolce e più veloce di eseguire all'interno dell'IDE (particolarmente lento se si sta lavorando su una soluzione grande come me).Come eseguire TUTTI i test nella mia soluzione utilizzando la riga di comando MSTest.exe?

mia domanda è come posso utilizzare per eseguire MSTest.exetutti le prove a mio soluzione? Il comando ha solo l'opzione /test per filtrare i test in un assembly specificato nell'opzione /container. Posso solo pensare di chiamare questo comando N volte dato che posso avere tutto il gruppo di test N nella mia soluzione (!?) Inoltre, i risultati dopo l'esecuzione sono concetti di base per l'assemblaggio in modo che non sia facile ottenere quali test sono falliti/passato.

Se si conosce un modo migliore, si prega di condividere! Grazie!

+0

È inoltre possibile utilizzare ILMerge per unire gli assembly prima di eseguire i test. – Marco

risposta

5

Si consiglia di dare un'occhiata al test runner Gallio.Echo fornito con la piattaforma di automazione di test Gallio. E 'un (OSS) pacchetto gratuito con molti strumenti conveniente di reporting e corridori di prova e che supporta la maggior parte dei quadri di prova esistenti (MbUnit, NUnit, MSTest, xUnit, ecc)

alt text

Più in particolare, Gallio.Echo è un versatile test runner di linea di comando. È possibile specificare un elenco di gruppi di test, vari filtri e molte altre opzioni. Gallio consolida i risultati del test in un unico report (XML, HTML, Zip, ecc)

-3

Basta usare:

mstest.exe /testcontainer:yourTests.dll /resultsfile:res.trx 

e verrà eseguito tutti i test in quella riunione, e sputare il risultato nella file specificato.

+6

La domanda riguardava l'esecuzione di tutti i test, come fa vs quando si fa clic su Esegui> Tutti i test in soluzione – alga

13

Ho eseguito questa operazione utilizzando l'argomento testmetadata e puntandolo al mio file .vsmdi.

Come spiegato here.

Es .:

mstest /testmetadata:mySolution.vsmdi 

Tuttavia notare che testmetadata possono essere più fragili (per esempio empty test lists combined with the Ignore attribute cause "Specified cast is not valid"). La creazione di un batch con tutte le DLL contenenti classi di test potrebbe essere un'alternativa più affidabile.

+0

Ciao. L'editor di test è obsoleto in VS2015. Sai come posso migrare la lista alla nuova funzionalità delle playlist in VS2015 ?. Grazie in anticipo. – mggSoft

6

Avevo bisogno della stessa cosa, senza voler installare nulla o generare file vsmdi, quindi ho trovato questo script PowerShell, di seguito. Corre TUTTI test in uno comando su una cartellaed è sottocartelle (non soluzione, ma va bene per me).

Sentitevi liberi di suggerire come rendere questo script più elegante:

$x = ""; dir *\bin\*test*.dll -Recurse | foreach { $x += "/testcontainer:""$_"" " }; iex "mstest $x" 

Istruzioni:

  • Aggiungi percorso mstest.exe via Environment variables variabile PATH, altrimenti basta sostituire mstest con il suo percorso completo nello script PowerShell in alto.

    enter image description here

  • Aperto PowerShell, incollare il comando.
  • Modificare *\bin\*test*.dll per soddisfare le vostre esigenze. Nello script corrente otterrà tutti DLLs nella cartella bin in modo ricorsivo, contenente la sottostringa "test" nel nome file.
  • Esegui il comando!
+0

L'ho modificato un po 'per riuscire a trovare dll di test migliore: '$ x =" "; Get-ChildItem -path. -Recurse -Include * Test.dll | dove {$ _. FullName -match "bin"} | foreach {$ x + = "/ testcontainer:" "$ _" ""}; iex "mstest $ x" ' – engineforce

Problemi correlati