2010-02-25 10 views
37

Se avvio i test di unità da TestDriven.NET in VS2008, vengono eseguiti quasi immediatamente.Perché NUnit si blocca dalla riga di comando, ma non in TestDriven.NET?

Se avvio i test dell'unità utilizzando nunit-console.exe, la console NUnit si blocca per cinque minuti prima di eseguire effettivamente i miei test. Se allego un debugger, sembra che passi il suo tempo in System.IO.MemoryStream.Read, chiamato da System.Runtime.Serialization.Formatters, chiamato da System.Runtime.Remoting, dall'altra parte di alcune transizioni gestite da nativo chiamate da NUnit.Core.ProxyTestRunner.Test.get. A volte, è in System.Runtime.Serialization.ObjectManager.RecordFixup o .FindObjectHolder.

Questo è con NUnit-2.5.2 su XP a 32 bit, completamente aggiornato. Tutti gli assembly sono destinati a .NET 2.0.

Cosa ènunit-console fino a? C'è un modo per persuaderlo a non farlo?

+1

Come viene configurata la tua applicazione? C'è una lunga lista di ricerca per i file di configurazione, se sta ottenendo una configurazione insufficiente o non valida, potrebbe passare molto tempo a tentare l'analisi. – ssamuel

+0

Vorrei poter ricordare: ora sono su VS2010, usando una versione molto più recente di NUnit, e tutto funziona. –

+0

Non è esattamente una risposta, ma mi arrendo e vado con XUnit, è comunque molto meglio. –

risposta

1

Non posso esserne sicuro, visto che sono anche fortunato ad usare una nuova versione. Probabilmente hai un'enorme suite di test con molti test, vero? Se non è necessario l'isolamento del dominio dell'applicazione per altri motivi, è possibile turn it off e quindi si salva il tempo di remoting/marshaling.

Prova questo per favore e dare un feedback a noi come è andata:

nunit-console.exe /noshadow /nologo /process Single /domain None whatever.dll 

V'è anche un modo per aggiungere queste opzioni tramite the configuration files, se non si vuole toccare le script di build, anche con un bastone. :)