2012-05-08 16 views
8

Ich versuche, in die Tests nach dem Aufruf der Setup-Methode zu debuggen und die Tests hängen von der Setup-Methode aufgerufen werden.Nunit nicht ausgeführt SetUp-Methode im Visual Studio-Debug-Modus

Ich benutze Nunit 2.6.0.12051 testet eine .Net 4.0 Klassenbibliothek. Das Projekt Nunit Visual Studio verfügt über eine Klasse, die mit [SetUpFixture] und einer mit [SetUp] markierten Methode markiert ist.

Wenn ich die Tests von der NUnit-GUI aus führe, bin ich mir ziemlich sicher, dass die Setup-Klasse aufgerufen wird (weil sie jetzt nicht mit einem Laufzeitfehler in der Setup-Klasse gestoppt wird). t debuggen Sie hinein. Wenn ich versuche, die Einstellungen so zu ändern, dass "Verbose Tracing" angezeigt wird, gibt NUnit gui eine nicht behandelte Ausnahme aus.

Wenn ich die Tests von Visual Studio über Testansicht/Debug-Auswahl ausführen, stoppt der Unterbrechungspunkt bei der Setup-Methode nicht die Ausführung und die Trace-Anweisungen in der Methode werden nicht im Debug-Fenster gedruckt. Ich bin mir sicher, dass die Setup-Methode nicht aufgerufen wird.

Während ich nur die Setup-Klasse als Basis aller Testklassen ändern konnte, muss ich die Methode nur einmal ausführen.

Jede Hilfe wäre wunderbar.

+0

Aus Mangel an einer technischen Antwort, und dies aus einer Design-Perspektive betrachtet. Ich werde die Attribute entfernen und nur die Methode aus den Tests aufrufen, die davon abhängen (90% der Tests). Die Methode wird auch eine Markierung haben, die nur dann die Arbeit macht, wenn sie vorher nicht ausgeführt wurde. Dies ermöglicht es, dass jeder Test leicht lesbar ist in Bezug darauf, was passiert - anstatt etwas zu tun, um die Setup-Methode oder Basisklasse zu finden. – DFBerry

Antwort

2

Ich bemerkte gerade das gleiche bei der Verwendung der neuesten NUnit von NuGet (2.6). Die [Setup] -Methode wird nicht vor den [Test] -Methoden ausgeführt.

Ich weiß nicht, warum sie diesen ziemlich wichtigen Teil von NUnit geändert haben, aber ich habe es für meine Zwecke korrigiert, indem ich zurück zur Version 2.5.10 gegangen bin, die [Setup] vor [Test] ausführt.

+0

Ich habe gerade dies festgestellt, so ist es immer noch ein Problem in 2.6.2 – Jammer

+2

Beachten Sie, dass [SetUp] Groß-und Kleinschreibung, zumindest löste das Problem für mich in v2.6.4, wo ich versehentlich eine andere [Setup] Attribut, das vermutlich von NUnit oder VS hinzugefügt wurde. –

1

Ich hatte dieses Problem auch, aber die Installation der neuesten Version des Testlaufers (TestDriven.NET in meinem Fall) repariert es. Es war kein NUnit-Problem für mich.

3

Ich lief in dieser Frage und fand schließlich diesen bedeutenden Satz aus dem NUnit SetUpFixture documentation:

„Dies ist das Attribut, das eine Klasse markiert, die die einmalige Einrichtung oder Teardown-Methoden für alle Prüfvorrichtungen unter a enthält gegeben Namespace. "

Es stellte sich heraus, dass meine SetUpFixture-Klasse in einem völlig anderen Namensraum war als meine Tests, also wurde sie nicht ausgeführt.

Verwandte Themen