2009-07-19 17 views
2

Ich habe das Problem beim Versuch, Unit-Tests mit NUnit 2.5 in Vista 64bit, Microsoft Visual Studio 2008 SP1, Projects Framework 3.5 zu laufen.Kann nicht mit NUnit auf Vista 64bit testen

Ich habe 2 Projekte in der Lösung, das erste - Hauptprojekt und das zweite - Projekt mit Tests. Beide Projekte zielen auf "Any CPU" -Plattform ab. In der Tat habe ich nichts in Bezug auf Plattform geändert, nur zwei Projekt mit Standardeinstellungen (Any CPU) erstellt.

Ich habe versucht, NUnit-Tests mit verschiedenen Tools auszuführen: 1) Task-Runner in Resharper 4.5; 2) TestDriven.NET 2.0; 3) NUnit.exe. Und jedes Mal, wenn ich Unit-Tests ausführen, erhalte ich einen Fehlerbericht von Windows, der besagt, dass das Programm (1) Task-Runner; 2) TestDriven.NET 2.0; 3) Nunit.exe) Ausführung wurde gestoppt. Ich habe versucht, Tests mit Nunit-x86 auszuführen, und ich habe den gleichen Fehler.

In Details aus dem Windows sah ich die folgende Zeichenfolge (unter anderem):

Fehlermodulname: KERNEL32.dll

jemand mit ihm helfen? Was ist los mit dir? Ich kann mehr Details zur Verfügung stellen, wenn es hilft.

+0

Können Sie eine detailliertere Stapelverfolgung der Ausnahme bereitstellen? Versuchen Sie, Nunit vom VS2008-Debugger auszuführen, um die Ausnahme ein wenig leichter zu finden. –

+0

Dank Jerome, ich war so von Architekturproblemen mit NUnit verdeckt, dass ich nicht daran dachte, Tests mit Debugger auszuführen. Schande über mich :). –

Antwort

1

Nun, das Problem war weder Kompatibilität noch Architektur. Ich habe Tests mit dem Debugger ausgeführt und festgestellt, dass eine Methode die StackOverflowException ausgelöst hat, die von der CLR-Bibliotheksmethode ausgelöst wurde. Ich weiß nicht, warum NUnit diese Ausnahme nicht von CLR abfängt, tut es aber nicht. Tatsächlich fängt NUnit normalerweise jede Ausnahme ab und zeigt nur den roten Status des Tests an. Aber anscheinend nicht in diesem Fall. Wie auch immer, vielen Dank für die Hilfe und ich denke, wenn jemand dieses Problem manchmal begegnet, wird er nicht überrascht sein :).