Relativer Pfad für Unit-Testprojekt c #

8

Ich habe eine Lösung, die eine Konsolenanwendung und einen Komponententest hat.

%Vor%

Der Validator befindet sich im Konsolenanwendungsprojekt, während sich meine Datei.xml im Ordner innerhalb des Komponententestprojekts befindet.

Dieser Komponententest wird erfolgreich ausgeführt. Ich möchte jedoch sicherstellen, dass mein targetFile nach dem Einchecken in meinem tfs oder Build-Server immer noch gefunden werden kann.

Wie soll ich den Pfad der Zieldatei ändern?

Vielen Dank im Voraus!

    
Gerald 05.07.2013, 03:04
quelle

5 Antworten

7

Wenn ich Ihr Problem richtig verstanden habe, ist es nicht gut, dass der Produktcode (in der Konsolenanwendung) von einem Artikel im Testprojekt abhängt. Daher empfehle ich Ihnen, file.xml in das Produktcode-Projekt zu verschieben.

Um Ihr Pfadproblem zu lösen, ist der beste Ansatz, die Eigenschaft In Ausgabeverzeichnis kopieren als Immer kopieren oder Wenn neuere kopieren , die Sie im Fenster VS-Eigenschaften finden können.

Sehen Sie sich die folgenden Schritte an.

  1. Erstellen Sie bei Bedarf einen Ordner, um file.xml in das Produktprojekt (z. B. Datenordner) einzufügen.
  2. Setzen Sie file.xml in den Ordner.
  3. Wechseln Sie zum VS-Eigenschaftenfenster für file.xml .
  4. Setzen Sie Build Action auf None und Kopieren in Output Directory auf Kopieren Sie immer oder Copy if neuere .
  5. Erstellen und führen Sie Unit-Tests als

    durch %Vor%

    In diesem Fall erstellt VS automatisch den Datenordner mit file.xml unter dem Ausgabeordner des Testobjekts.

Jin-Wook Chung 05.07.2013 06:21
quelle
5

Sie können auf den Ordner wie folgt verweisen.

%Vor%     
nhrobin 05.07.2013 04:22
quelle
2

Ich habe die Lösung für mein Problem gefunden. Ich habe das benutzt:

%Vor%     
Gerald 05.07.2013 07:01
quelle
2

Der einfachste Weg ist, dass MS Unit Test ein [DeploymentItem] im Test der Unit-Test-Klasse verwendet. Weitere Informationen finden Sie Ссылка . Auch Wie kann ich ein Datendatei in einem VS 2008 Unit-Test?

    
Richard Schneider 07.07.2013 20:42
quelle
0

Die Position von Validator sollte nicht relevant sein. Jeder relative Pfad sollte relativ zu dem Verzeichnis sein, in dem Ihre Testanwendung ausgeführt wird. Legen Sie also targetFile als relativen Pfad von dort fest. Stellen Sie dann sicher, dass Sie Ihre Tests von demselben relativen Speicherort auf dem Bulid-Server wie auf Ihrem Dev-Computer ausführen.

Bonus-Tipp: Verwenden Sie Assert.IsTrue(actual);

    
Ergwun 05.07.2013 04:07
quelle

Tags und Links