2011-01-08 2 views
11

Ich habe Visual Studio 2010 zum Debuggen von xUnit.net Tests konfiguriert, indem ich die Projekteinstellungen | Debuggen | Starten Sie das externe Programm, um den xUnit.net-Konsolen-Runner auszuführen.Wie konfiguriere ich Visual Studio, um xUnit.net-Tests auszuführen?

Dies funktioniert OK, aber nur, wenn Sie den vollständigen Pfad zum Testprojekt dll über die Befehlszeilenargumente Bereitstellung zB: „c: \ Entwicklung \ TestProject.dll“

Ich habe $ (BINDIR versucht, mit) $ (TargetName) $ (TargetExt) als Parameter über die Befehlszeilenargumente Abschnitt, aber es funktioniert nicht. Irgendwelche Vorschläge, wie ich den expliziten/vollständigen Pfad vermeiden kann?

+0

beantwortete meine eigene Frage –

Antwort

6

Diese Antwort wurde vor James 'und Brad's genialer Arbeit mit xUnit.net Runners gegeben. Siehe michielvoo's Antwort unten.

Um das Problem der explizit geben den Namen der Bibliothek zu vermeiden ein cmd.exe mit Kommandozeile arguements verwenden können: /C xunit.console.exe $ (BINDIR) $ (Targetname) $ (TargetExt)

prüfen Verwenden Ausgabefenster

Verwenden Sie den Extras | Optionen | Tastatur Konfiguration einen Hotkey zuweisen.

0

Ich tippe einfach den vollen Namen der Baugruppe, die alles ist.

unter Befehlszeilenargumente: SharedDataBridge.Tests.dll

2

Ein alternativer Weg ist es, eine VS-Plugin als Testrunner verwenden. Zum Beispiel ReSharper.

+1

ein Xunit Testrunner für Resharper kann hier gefunden werden: http://xunitcontrib.codeplex.com –

6

Dies ist, was ich in meiner CSPROJ Datei verwenden, um die xUnit GUI Läufer als Startaktion auszuführen:

<PropertyGroup> 
    <StartAction>Program</StartAction> 
    <StartProgram>$(MSBuildProjectDirectory)\..\..\Packages\xunit.runners.1.9.1\tools\xunit.gui.clr4.exe</StartProgram> 
    <StartArguments>"$(MSBuildProjectDirectory)\$(OutPutPath)$(AssemblyName).dll"</StartArguments> 
</PropertyGroup> 

Damit dies funktioniert, alles, was Sie tun müssen, ist installieren Sie das xUnit.net Runners NuGet Paket:

Der einzige Nachteil bisher ist, dass es versionsspezifisch ist, also sollten Sie jedes Mal, wenn Sie das NuGet-Paket aktualisieren, diese Konfiguration aktualisieren, um auf den richtigen Runner zu zeigen.