Ich weiß, dass ich Daten in Dateien verwenden kann, um den Komponententest zu steuern, z. B. Daten in einer CSV- oder XML-Datei.
Zum Beispiel:
%Vor%Ich würde gerne wissen, ob es eine Möglichkeit gibt, dass ich anstelle einer Datei eine Datenstruktur verwenden kann, die bereits im Speicher ist, um die Tests zu steuern.
Etwas wie:
%Vor%Wenn es sich im Arbeitsspeicher befindet, würde ich es vorziehen, keine DataSource zu verwenden, sondern eine T4-Vorlage zu verwenden, um stattdessen automatisch Unit-Tests zu generieren. Auf diese Weise schreiben Sie den Test nur einmal, aber in den Ergebnissen für den Testlauf sehen Sie für jeden der von Ihnen getesteten Eingaben einen Eintrag. Fügen Sie diese .tt-Datei zu Ihrem Testprojekt hinzu.
%Vor%Eine einfache Lösung kann das sein ...
%Vor%Auf diese Weise können Sie Ihre Testmethode sowohl mit Daten aus der Datei als auch mit Daten aus dem Speicher verwenden.
Ich glaube nicht, dass Sie das mit dem [DataSource]
-Attribut machen können, aber Sie können ein mehr oder weniger dasselbe manuell tun.
Laden Sie Ihre Daten in eine mit [AssemblyInitialize]
oder [ClassInitialize]
dekorierte Methode. Schreiben Sie dann Ihre Tests neu, um die Daten zu wiederholen. Leider haben Sie auf diese Weise nur einen einzigen Test statt separate Ergebnisse pro Testlauf.
Ich beantworte ein ähnliche Frage und die Lösung, die ich zuvor verwendet habe, besteht darin, aus meinen im Speicher befindlichen Daten eine einfache CSV-Datei zu generieren.
Sie können MSTestHacks über NuGet verwenden, um Daten von einem IEnumerable zu füttern, siehe diese Antwort .
Ich denke, Gallio Ambience sollte dieses Problem lösen. Ich bin mir nicht sicher, was der aktuelle Stand des Projekts ist.
Tags und Links c# visual-studio-2010 mstest data-driven-tests