2010-06-25 38 views
6

Ich habe herausgefunden, wie meine Tests von der Kommandozeile ausgeführt werden:Slim .net: Wie debugge ich Testgeräte mit Visual Studio?

java -jar fitnesse.jar -c MyFixturePage?test&format=text -d "c:/utils/fitnesse/" -r "FitNesseRoot" 

dieser Verwendung als Startparameter für mein Fixture Montag Projekt in Visual Studio nicht Arbeit. Ich verwende den Slim Runner und Executor in meinen Fixtures: http://github.com/jediwhale/fitsharp/downloads

Hat jemand herausgefunden, wie man Debuggen mit Slim in Visual Studio funktioniert?

Antwort

4

Das Problem ist, dass Java einen anderen Prozess hervorruft, in dem Ihr .NET-Code ausgeführt wird und dieser Prozess dann sofort beendet wird. Hier ist ein Weg, um einen Halt des Prozesses zu erhalten, wo der .NET-Code ausgeführt wird:

http://www.asoftwarecraft.com/2010/01/troubleshooting-with-fitsharp-and.html

+0

Vielen Dank Mike, perfekte Lösung. Schätze, ich hätte das Handbuch lesen sollen :) http://www.syterra.com/Slim/DebuggingFixtures.html –

+0

Falls der Link jemals stirbt, ist die Idee, Ihre Testseite zu bearbeiten, um den Test Runner von Runner.exe zu ändern RunnerW.exe. Beispiel: Wenn Sie die folgende Test-Runner-Definition '! define TEST_RUNNER {FitSharp \ Runner.exe}' 'auf Ihrer Seite haben, ändern Sie sie in'! define TEST_RUNNER {FitSharp \ RunnerW.exe} '. Wenn Sie dann den Test ausführen, wird ein Windows-Formular angezeigt, das darauf wartet, dass Sie auf die Schaltfläche "Start" klicken. Klicken Sie noch nicht auf den Go-Button. In Visual Studio anfügen, um "RunnerW.exe" zu verarbeiten, klicken Sie dann auf die Schaltfläche "Go". Die Ausführung sollte an allen in Visual Studio vorhandenen Haltepunkten unterbrochen werden. –

5

Eine weitere gute Möglichkeit, eine Behauptung zu einfach vorstellen, die den Debugger startet. In unserem Code stammen alle unsere Fixtures von einigen einfachen Custom-Basis-Fixtures mit einigen Hilfsprogrammen in ihnen wie | debug |

diese Behauptung startet nur der Debugger wie folgt:

public void Debug() 
    { 
     System.Diagnostics.Debugger.Launch(); 
    } 

sobald die Behauptung der Starts Debugger getroffen wird.

Dies hat den Vorteil, dass Sie es schnell überall hin mitnehmen können. Manchmal haben Sie vielleicht einen langen Test, der dieselben Behauptungen immer wieder verwendet. In diesem Fall ist das nett, weil Sie es direkt vor dem Problem ausführen können.

0

Ich erstellte ein einfaches Dienstprogramm, das Debbuger.Launch aufruft, ohne den Code oder das FitNesse-Skript ändern zu müssen. Dies ist sehr nützlich, wenn sich Ihre Code- und Fitnesse-Skripte in der Quellcodeverwaltung befinden. Weitere Informationen finden Sie unter this blog post.