Debugging Tests laufen unter NUnit

7

Ich habe eine .NET 4.0 C # -Lösung mit einem Testprojekt, das Komponententests unter NUnit ausführt. Die NUnit-Binärdateien sind v3.5.

Ich kann die Tests sehr gut durchführen, aber im Visual Studio keine Breakpoints und Einzelschritte setzen. Ich vermute, dass dies durch die Fehlabstimmung in .NET-Versionen verursacht wird. Gibt es eine Möglichkeit, eine v4.0-Test-Assembly mit ninit for v3.5 zu durchlaufen?

    
simonc 15.02.2012, 17:15
quelle

5 Antworten

22

Das Problem ist, dass NUnit, wenn Sie es nicht anders angeben, einen Unterprozess erzeugt, um Tests auszuführen, wenn er dies als notwendig erachtet. Wenn Sie es in Process Explorer sehen, können Sie sehen, dass "nunit-console.exe" * "nunit-agent.exe" * erzeugt. Der Visual Studio-Debugger wird nicht automatisch an untergeordnete Prozesse angefügt.

In diesem Fall glaube ich, dass die Versionskonflikte dafür verantwortlich sind, dass ein Teilprozess gestartet wird. Die einfachste Möglichkeit, dies zu umgehen, ist die Bearbeitung von "nunit-console.exe.config" *, um die Menge der <supportedRuntime> -Werte zu ändern. Dort sollte bereits ein Kommentar stehen, der die Zeile markiert, die Sie auskommentieren sollten, damit sie als .NET 4.0 ausgeführt werden kann:

%Vor%

Sobald Sie das geändert haben, ist der erste NUnit-Prozess bereits .NET 4.0 und es sollte kein Unterprozess generiert werden müssen. Wenn Sie sicher sein möchten, geben Sie /process=Single an und NUnit wird entweder in einem einzigen Prozess ausgeführt oder schlägt sofort fehl, wenn dies nicht möglich ist.

* - Wenn Sie die x86-Versionen verwenden müssen, ersetzen Sie:

%Vor%     
Weeble 19.03.2012, 11:07
quelle
3

Falls es jemandem, den ich kenne, hilfreich ist, ist es 4 Jahre alt, aber ich habe die Antworten hier verfolgt und sie waren nützlich. Auch wenn meine Antwort für eine andere Version von NUnit ist, aber für jemanden wie mich, der gerade entdeckt, habe ich NUnit und NUnit Console über Manage NuGet Packages installiert ... (1. und 3. Option im Screenshot) und so konfiguriert mein Test Projekt Eigenschaften Debug Registerkarte (siehe nächsten Screenshot unten) in VS2015 Community Edition zu laufen nunit3-console.exe, die aus Ihrem \ Pakete Ordner gefunden wird, die automatisch erstellt wird, wenn Sie "NUnit Console" und für die Argumente installieren Ich habe meine Testbibliothek dll und die Befehlszeilenoptionen --wait hinzugefügt (was den Entwickler dazu auffordert, eine beliebige Taste zum Schließen zu drücken, so dass Sie das Ergebnis sehen können), und noch wichtiger - in Prozess, der Ihren Testbibliothek-.NET-Code automatisch anfügt Deine Breakpoints werden getroffen.

Hinweis: Um die NUnit3-Konsolenanwendung auszuführen, legen Sie Ihr Testprojekt als Startprojekt fest.

    
Glen 01.02.2017 04:20
quelle
2

Eine weitere Möglichkeit ist, Ссылка zu verwenden, um Ihre Tests über Visual Studio auszuführen. Sie können einen Breakpoint auf einen Test & amp; Rechtsklick - & gt; Tests ausführen - & gt; mit Debugger.

    
Trevor Pilley 15.02.2012 18:33
quelle
1

Resharper ermöglicht es Ihnen, während des Debugging durch Ihre Unit-Tests zu gehen. Aber ich denke nicht, dass Sie dasselbe mit Visual Studio machen können. Versuchen Sie, die Testversion von Resharper zu installieren, und versuchen Sie dann, die Tests zu debuggen.

    
gprasant 15.02.2012 17:46
quelle
1

Ich bin mir über die Konsolenanwendung sicher, aber Sie sollten feststellen, dass Sie die GUI-Version von NUnit manuell starten und dann vom Debugger in Visual Studio an den Prozess nunit-agent anhängen können / p>     

Matthew Strawbridge 15.02.2012 17:56
quelle

Tags und Links