2013-12-18 9 views
6

Ho un'applicazione console e ho aggiunto una soluzione di libreria di classi al progetto per contenere tutti i miei test di unità.Nunit non raggiunge i punti di interruzione nella libreria di classi del progetto di test (VS2012)

Tutto funziona bene a parte il fatto che i punti di interruzione non vengono colpiti quando eseguo i miei test.

Se eseguo l'intera applicazione, i punti di interruzione sull'app della console vengono colpiti correttamente.

Se si eseguono i test, i punti di interruzione nelle classi di test e l'app della console vengono completamente ignorati.

vidi un altro post dicendo di andare a eseguire il debug> iniziare nuova istanza, ma in quanto è una libreria di classi che non posso fare questo. Devo avere classi di test in un tipo di progetto diverso?

Sto utilizzando Nunit, VS2012 e le guide NUnit.

Ho un paio di test in mancanza e io riesco a capire il motivo per cui, ho davvero bisogno di essere in grado di eseguire il codice.

Qualsiasi aiuto è molto apprezzato.

risposta

15

Invece di eseguire i test, provare il debug test

enter image description here

+0

Grazie! Hai appena reso la mia giornata molto più semplice :) – Guerrilla

+0

hhahaa, sei il benvenuto amico – Leo

1

mio codice di prova è stato compilato in .Net 4.5 e stava usando il Nunit2.6.1.

I punti di interruzione non erano di essere colpiti se avessi fatto solo di debug del progetto di test Option-> avvio esterno programma-> NUnit-86x.exe e danno il nome dll di essere l'argomento della riga di comando.

Questo avvia l'unità Nes exe ma senza punti di interruzione.

1) Per risolvere questo vai

C:\Program Files (x86)\NUnit 2.6.1\bin 

2) Ricerca di nunit-x86.exe.config o se si prevede di utilizzare il nunit.exe quindi aprire nunit.exe.config.

3) Aprire il bene in blocco note e cercare la linea

<startup useLegacyV2RuntimeActivationPolicy="true"> 
<!-- Comment out the next line to force use of .NET 4.0 --> 
<supportedRuntime version="v2.0.50727" /> 
<supportedRuntime version="v4.0.30319" /> 
</startup> 

4) Rimuovere la linea di sostegno Runtime versione = v2.0.50727 e salvare il file (aperto in modalità amministratore aprendo il blocchetto per appunti in admin con il tasto destro del mouse e aprire come amministratore).

5) Ricostruisci progetto per eseguire la sessione di debug del codice di test. I punti di interruzione saranno colpiti.

0

Per chiunque abbia questo problema: controllare se si sta costruendo in modalità di rilascio.

Ho avuto questo problema con NUnit 3.7.0, e dotnet nucleo 1.0 e VS 2017. Si è scoperto che stavo costruendo in modalità di rilascio. Costruire in modalità Debug ha risolto il problema.

Problemi correlati