2014-10-29 18 views
9

Sto assemblando una nuova pila di unit test da eseguire insieme come un processo di configurazione. Sto usando vstest.console.exe invece di mstest.exe principalmente per la sua capacità di eseguire test da diversi framework, ma in questo momento lo stato attivo è un paio di DLL xUnit. I lavori vengono eseguiti come parte di una pipeline Jenkins.Nessun test xunit rilevato da vstest.console.exe

Ho testato tutto con successo su un paio di unità di sviluppo, ma la scoperta di test fastidiosamente non funziona su nessuna delle caselle di compilazione di elementi di configurazione finora. Questo dopo l'aggiunta dell'adattatore di test 0.99.8 xUnit vsix (testato anche con 0.99.7). Le xUnit DLL vengono costruite contro 4.5 con la versione beta nuget 2.0.0.2378 di xUnit.

Ho riprodotto i sintomi con la DLL più semplice possibile, con un singolo metodo di test pubblico, lavorando bene nella mia casella, non lavorando su alcuna casella di compilazione. L'ambiente di distribuzione è abbastanza semplice, con un'installazione VS2012 e l'adattatore di test xUnit, su Windows 2012.

Ho abilitato la registrazione TpTrace tramite i file di configurazione exst vstest e tutto sembra a posto. Immagino che sto cercando un modo per risolvere ulteriormente il problema (magari tracciando per il processo di scoperta xUnit) o ​​una soluzione al problema. Preferirei mantenere l'uso della console vstest per la semplicità di eseguire diversi framework.

Ho scritto questo problema tramite il sito xUnit codeplex.

Ho controllato questo SO post ma nessuna delle soluzioni suggerite ha senso qui.

risposta

4

OK problema risolto, ma dopo alcuni problemi di risoluzione dei problemi che coprirò nel caso in cui è utile per qualcuno. Il problema era che xunit.execution.dll non era disponibile nella stessa cartella delle DLL contenenti test. Questo è richiesto per la scoperta di xunit. Ho ricevuto solo qui da:

  • Impostazione HKCU \ Software \ Outercurve Foundation \ xUnit.net \ Visual Studio Plugin Test \ MessageDisplay = Diagnostic (questo dovrebbe essere possibile tramite il file runsettings, ma non viene raccolto, e non possibile tramite le opzioni di strumenti di VS xUnit pagina perché la sua non riuscendo ad aprire)
  • vstest ora sputa fuori 'Skipping xunitTests.dll (nessun riferimento al xUnit.net)'
  • Questo messaggio in realtà significa che xunit.dll e xunit.execution .dll non sono stati trovati nella cartella

Problema risolto d assicurandoti che dll venga copiata in quella cartella nelle caselle di compilazione.

21

Mi ci vuole un po 'di tempo per trovare la soluzione di come utilizzare vstest.console.exe e xUnit per VS2013, quindi penso che la pena il tempo di spiegare qui come ho fatto per tutti ...

Il primo passo è per seguire cosa viene spiegato here per installare il pacchetto di pre-release xunit.runner.visualstudio nuget nei progetti xunit che ne hanno bisogno per poter eseguire il test xunit da Visual Studio.

Poi, quando si esegue il comando di vstest.console.exe, si MUST utilizzare il parametro /TestAdapterPath.

la riga di comando dovrebbe essere simile qualcosa (il cammino verso l'adattatore xUnit è qui relativa così, si potrebbe mettere in assoluta o adattare a seconda della directory attiva):

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" c:\path\to\your\assembly.to.test.dll /TestAdapterPath:".\packages\xunit.runner.visualstudio.0.99.9-build1021\build\_common\" 

edit: Poiché la scheda le DLL vengono copiate nella cartella di output, potremmo semplificare la riga di comando dando il percorso "." all'opzione /TestAdapterPath:

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" c:\path\to\your\assembly.to.test.dll /TestAdapterPath:"." 

Per informazioni, funziona anche con NUnit, pacchetto NuGet NUnitTestAdapter e il comando:

"C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe" c:\path\to\your\assembly.to.test.dll /TestAdapterPath:"." 
+0

ho il mio caso xunit.runner.visualstudio.testadapter.dll non viene copiato, sai perché? – frizik

+0

Ottimo! TestAdapterPath ha reso operativi i miei test più importanti. – Drutten

Problemi correlati