2012-05-08 11 views
8

Sto provando a eseguire il debug nei test dopo che è stato chiamato il metodo di installazione e i test dipendono dal metodo di installazione chiamato.Nunit non esegue il metodo SetUp in modalità di debug di Visual Studio

Sto usando Nunit 2.6.0.12051 testando una libreria di classi .Net 4.0. Il progetto nunit Visual Studio ha una classe contrassegnata con [SetUpFixture] e un metodo contrassegnato con [SetUp].

Se eseguo i test dal GUI NUnit, sono abbastanza sicuro che venga chiamata la classe di installazione attribd (poiché non viene arrestata nella classe di installazione con un errore di runtime ora) ma posso effettuare il debug in esso. Se provo a modificare le impostazioni per vedere Traccia verbose, NUnit gui genera un'aspirazione non gestita.

Se eseguo i test da Visual Studio tramite Test View/Debug Selection, il punto di interruzione nel metodo di installazione non interrompe l'esecuzione e le istruzioni di tracciamento nel metodo non vengono stampate nella finestra di debug. Quindi sono sicuro che il metodo di installazione non viene chiamato.

Mentre potevo semplicemente modificare la classe di installazione in modo che fosse la base di tutte le classi di test, ho solo bisogno di eseguire il metodo una sola volta.

Qualsiasi aiuto sarebbe meraviglioso.

+0

Per mancanza di una risposta tecnica e dopo aver esaminato questo da una prospettiva di progettazione. Ho intenzione di rimuovere gli attributi e chiamare il metodo dai test che dipendono da questo (90% dei test). Il metodo avrà anche una bandiera che funziona solo se non è stata eseguita in precedenza. Ciò consentirà ad ogni test di essere facilmente leggibile in termini di ciò che accade - invece di fare qualcosa, vai a trovare il metodo di setup o la classe base. – DFBerry

risposta

2

Ho appena notato lo stesso quando si utilizza l'ultima NUnit da NuGet (2.6). Il metodo [Setup] non viene eseguito prima dei metodi [Test].

Non so perché hanno cambiato questa parte molto significativa di NUnit, ma l'ho risolto per i miei scopi tornando alla versione 2.5.10 che esegue [Setup] prima di [Test].

+0

L'ho appena incontrato quindi è ancora un problema in 2.6.2 – Jammer

+2

Si noti che [SetUp] fa distinzione tra maiuscole e minuscole, almeno questo ha risolto il problema per me nella v2.6.4, dove inavvertitamente ho usato un [Setup] diverso attributo presumibilmente aggiunto da NUnit o VS. –

1

Ho riscontrato questo problema, ma l'installazione dell'ultima versione del test runner (TestDriven.NET nel mio caso) l'ha corretta. Non era un problema NUnit per me.

3

Ho appena incontrato questo problema e alla fine ho trovato questa frase significativa dal NUnit SetUpFixture documentation:

"Questo è l'attributo che segna una classe che contiene i metodi di impostazione o di teardown di una volta per tutte le attrezzature di prova sotto un dato spazio dei nomi. "

La mia classe SetUpFixture si è rivelata in uno spazio dei nomi completamente diverso rispetto ai miei test, quindi non è stata eseguita.

Problemi correlati