17 Stimmen

Wie kann ich Beispieldatendateien in VS-Unit-Tests einbinden?

Ich habe Unit-Tests, die ich gegen eine Beispiel-XML-Datei ausführen möchten. Wie soll ich diese Dateien für die Unit-Tests bereitstellen? Ich habe versucht, mit der Content-Build-Aktion zu spielen, aber ich habe keinen Zugriff auf einen Anwendungskontext so GetContentStream ist aus.

Ich bin mir bewusst, ich kann einen DataContext zu einer SQL-Datenbank verwenden, aber ich denke, dies ist der falsche Ansatz.

0 Stimmen

Was genau wollen Sie mit der xml-Datei machen?

0 Stimmen

Spielt eigentlich keine Rolle, mein Test verwendet sie als Beispieldaten.

0 Stimmen

Kein Glück mit XmlTextWriter / XmlTextReader ?

21voto

bryanbcook Punkte 15032

Wenn Sie die XML-Datei mit Ihren Tests bereitstellen möchten, haben Sie mehrere Möglichkeiten:

Eingebetteter Inhalt

Sie können die Xml-Datei als Inhalt in die Baugruppe einbetten.

  1. Fügen Sie die Datei zu Ihrem Testprojekt hinzu. Im Kontext dieses Beispiels befindet sich die Datei im Stammverzeichnis des Projekts.
  2. Ändern Sie die Eigenschaften der Datei so, dass sie eine eingebettete Ressource ist.
  3. Während des Tests können Sie auf die Datei als Stream zugreifen, indem Sie die Manifest-Ressource abrufen .

Beispiel:

[TestMethod]
public void GetTheFileFromTheAssembly()
{
    Stream fileStream = Assembly.GetExecutingAssembly()
                          .GetManifestResourceStream("MyNamespace.File.xml");

    var xmlDoc = new XmlDocument();
    xmlDoc.Load(fileStream);

    Assert.IsNotNull( xmlDoc.InnerXml );
}

DeploymentItemAttribute

Sie können die Testmethode oder -klasse mit einer [DeploymentItemAttribute] . Der Dateipfad ist relativ zur Lösung.

[DeploymentItem("file.xml")] // file is at the root of the solution
[TestMethod]
public void GetTheFileDeployedWithTheTest()
{
    var xmlDoc = new XmlDocument();
    xmlDoc.Load("file.xml");

    Assert.IsNotNull(xmlDoc.InnerXml);
}

Test-Einstellungen

Sie können einzelne Dateien oder ganze Verzeichnisse mithilfe der Verteilungskonfiguration in der Testeinstellungsdatei verteilen. (Tests -> Einstellungen bearbeiten -> Dateiname.testsettings)

enter image description here

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X