12

Ich verwende MS unit testing framework zum Testen meiner C# -Bibliothek. Ich muss eine Datei öffnen, die ich verwende DeploymentItem attribute. Es stellt jedoch keine Datei im Test-Implementierungsverzeichnis bereit.DeploymentItem nicht bereitstellen von Dateien

In meinem Unit-Test-Projekt habe ich einen Ordner erstellt TestFile in diesem Ordner gibt es mehrere Dateien, sagen wir a.txt, b.txt.

Jetzt in meiner Unit-Test-Klasse ich Attribut DeploymentItem hinzugefügt. Die Datei wird jedoch nicht kopiert.

Hier ist mein Code.

[TestClass] 
[DeploymentItem("TestFile")] 
public class CustomLibraryTest 
{ 
    public TestContext TestContext { get; set; } 

    [TestMethod] 
    [DeploymentItem(@"TestFiles\a.txt")] // THis should deploy a.txt to test deployment directory 
    { 
     var path = TestContext.TestDeploymentDir + "a.txt"; 
     // Now when I debug this unit-test, and open path in explorer, 
     // a.txt is not present in "TestResults\Deploy_fhafeez 2013-05-28 13_02_37\Out" folder 
    } 
} 

Was mache ich falsch?

Antwort

14

Ich habe zwei mögliche Lösungen in this thread gefunden:

  1. die Eigenschaft der Bereitstellung von Dateien „in den Ausgabeordner kopieren“ auf „Immer kopieren“
  2. Überprüfen Sie die „Enable Deployment“ (Problems with DeploymentItem attribute sehen) Einstellung in der Datei Local.testsettings (siehe Problems with DeploymentItem attribute)

Ich hoffe, dies hilft.

+0

Danke für Hilfe. Ich habe "Immer kopieren" eingestellt. Ich habe die Bereitstellung mit Testeinstellungen durchgeführt. Ich dachte, dieses Mal DeplyomentAttribute zu verwenden. –

4

Für zukünftige Referenzen, von dem, was ich mit VS 2015 festgestellt habe - der Pfad, den Sie im Deployment-Element-Attribut angeben müssen relativ zur Build-Ausgabe (Debug-Ordner) sein. Wenn Ihre Ordnerstruktur "UnitTesting \ TestData \ Test.xml" lautet, muss das DeploymentItem DeploymentItem (".. \ .. \ TestData \ Test.xml") sein. In diesem Fall muss der TestData-Ordner nicht im UnitTesting-Projekt enthalten sein .