2009-10-14 9 views
14

Per ragioni a cui non intendo entrare, tutti i nostri test di unità utilizzano il framework di test VSTS. Ora voglio creare uno script MSBuild che esegua i test, ma non voglio usare mstest.exe per vari motivi (è più lento, richiede l'installazione di Visual Studio ovunque, ho bisogno di mantenere testrunconfig, ecc.)Esecuzione di test VSTS senza mstest.exe

Ho visto che TestDriven.net e TeamCity sono in grado di eseguire i test VSTS 'stile NUnit', senza utilizzare mstest.exe. Sei a conoscenza di qualsiasi utility da riga di comando standalone che fa questo?

+0

Anche questa è stata una seccatura, quindi l'ho sollevata come richiesta di 'utente vocale'. Se stai leggendo questo, e ti senti fortemente, puoi votare per questo? https: //visualstudio.uservoice.com/forums/121579-visual-studio/suggerimenti/4619858-mstest-api –

risposta

19

è possibile eseguire test team System (MSTest) in NUnit se si utilizza uno speciale NUnit Addin che riconosce il test MS Attributi (TestClass, ecc).

Exact Magic Software ha un open-source "test-adapter" che può farlo.

AGGIORNAMENTO: Ho rielaborato l'Msn NUnit Adapter di Exact Magic per NUnit 2.5.2.

+1

Sembra che questo sia quello che sto cercando, solo che non funziona con l'ultima versione di NUnit (2.5.2). Ho provato la versione su cui dovrebbe funzionare (2.4.6), ma sembra che non funzioni sul mio sistema (Windows 7). –

+0

Spesso, gli addin NUnit sono legati al framework sotto il quale sono stati compilati. Ha a che fare con il modo in cui NUnit e l'addin risolvono le dipendenze. Se forniscono l'origine, dovresti essere in grado di ricompilare con un riferimento aggiornato. Ciò presuppone che non stiano facendo qualcosa di specifico con gli assembly core 2.4.6, sebbene per la maggior parte le interfacce core non siano cambiate molto. Se trovo il tempo, potrei dare un risultato. – bryanbcook

+0

Ho iniziato a esaminarlo, sembra che abbiano apportato alcune modifiche alla 2.5.2, quindi ci vorrebbe qualche refactoring per far funzionare l'adattatore. –

0

È possibile eseguire MSTests senza installare Visual Studio. Vedi how-do-i-use-mstest-without-visual-studio.

Ho fatto questo in modo che potessi eseguire i miei test come parte del mio processo CI. (Sto usando CC.NET per la mia soluzione CI).


mi trovo in una situazione simile a quella che si, in che voglio usare TestDriven.NET per ottenere statistiche code coverage. Ma sto incontrando problemi. Il mio primo problema è che sto usando gli attributi AssemblyInitialize per inizializzare una connessione al database. Questo non è supportato da NUnit, quindi circa metà dei miei test falliscono mentre funzionano correttamente con MSTest.

Quindi, sembra che la traduzione di test da un framework di test a un altro abbia delle insidie. Se ne siete consapevoli, andate avanti, ma potrebbe essere meglio cercare di mantenere la coerenza su una struttura di test.

+0

Grazie, sono consapevole di essere in grado di eseguire mstest.exe al di fuori di VS, ma non voglio usare MSTest a tutti, a causa di i suoi numerosi problemi. –

+0

Okay, quindi puoi abbandonare completamente MSTest? Converti tutti i tuoi test in NUnit? Sembra proprio che avere un ambiente di test misto sia peggio di MSTest da solo. – quip

1

Sembra che TeamCity stia semplicemente sfruttando Gallio per eseguire i test VS. Gallio sembra avere l'integrazione msbuild e suoni perfetti, ma dopo uno sguardo più attento sembra che sarebbe necessaria una VS installare proprio come MSTest come appare dipendere da MS exes:

The plugin enable condition was not satisfied: '${process:DEVENV.EXE} or 
${process:VSTESTHOST.EXE} or 
${process:QTAGENT.EXE} or 
${process:QTAGENT32.EXE} or 
${process:QTDCAGENT.EXE} or 
${process:QTDCAGENT32.EXE}'. 
Host process exited with code: 0 

Detto questo suona come almeno una persona ha ottenuto che funziona:

Christoph De Baene - Running MSTest without Visual Studio

0

Corriamo VSTS mette alla prova utilizzando msbuild TestToolsTask su un server di Cruise Control. Questo non usa l'eseguibile MSTEST - la condizione che chiedi - ma usa una varietà di dipendenze di TFS.

Si noti che stiamo eseguendo la migrazione dei test dal framework di test VSTS per NUnit, principalmente perché possiamo creare estensioni per NUnit per eseguire attività utili.

Problemi correlati