2009-12-02 12 views
8

Gibt es in MSTest ein Äquivalent von SuiteBuilder? konnte bisher keinen finden.Unit-Testmethoden dynamisch zur Laufzeit in MSTest erstellen

Ich habe eine Reihe von XML-Dateien, von denen jede einer Testmethode zugeordnet ist. Da es 100 von diesen gibt und manuell Tests für jede von diesen schreiben, ist keine gute Idee.

Also in Nunit können Sie ISuiteBuilder implementieren und die Testfälle dynamisch ausführen und so viele Testmethoden anzeigen lassen.

Ich bin auf der Suche nach einer Möglichkeit, das gleiche in MSTest zu tun.

Ich habe DataSource-Attribut untersucht, aber es bietet 1 Datenquelle Xml-Datei/CSV pro Testmethode, zwingt mich, 100 von Testmethoden zu schreiben. Ich möchte auch jede XML-Datei getrennt halten und sie nicht alle zu einer riesigen Datei zusammenführen, in diesem Fall würde sie nicht mehr zu halten sein.

Hat jemand dies versucht oder hat er Vorschläge?

Antwort

2

Nicht genau das, wonach Sie gefragt haben, aber Sie können pex für automatisierte und parametrierbare White-Box-Tests verwenden. Auf diese Weise müssen Sie nicht all diese Dinge manuell tun. Pex unterstützt sowohl MSTest als auch NUnit. Generierte Tests verwenden eine zusätzliche Datei, Sie benötigen keine XML-Dateien.

Aber ich denke, Sie können nicht einfach Ihre bestehenden .xml-Dateien von NUnit verwenden und teilen Sie sie mit MSTest mit Pex - wenn Sie das beabsichtigte.

1

Ich habe dies bereits getan. Hier ist, was Sie tun müssten:

Der Test:

[TestMethod] 
[DeploymentItem("MyTestData")] 
[DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", 
        "|DataDirectory|\\MyTestData.xml", 
        "Test", 
        DataAccessMethod.Sequential)] 
public void MyTest() 
{ 
    string file = TestContext.DataRow[0].ToString(); 
    string expectedResult = TestContext.DataRow[1].ToString(); 
     // TODO: Test something 
} 

MyTestData.xml:

<?xml version="1.0" encoding="utf-8" ?> 
<Rows> 
    <Test> 
    <File>test1.xml</File> 
    <Result>1</Result> 
    </Test> 
    <Test> 
    <File>test2.xml</File> 
    <Result>2</Result> 
    </Test> 
</Rows> 

test1.xml und test2.xml muss im MyTestData Verzeichnis vorhanden sind.

+0

Warum der Downvote? – frast

Verwandte Themen