2009-12-02 13 views
8

Existe-t-il un équivalent de SuiteBuilder dans MSTest? Je ne pouvais pas en trouver un jusqu'à présent. J'ai un tas de fichiers xml, chacun d'être vu comme mappé à une méthode de test. Comme il y en a 100 et que vous devez écrire manuellement des tests pour chacun d'entre eux, ce n'est pas une bonne idée. Ainsi, dans nunit, vous pouvez implémenter ISuiteBuilder et faire en sorte que les cas de test s'exécutent dynamiquement et s'affichent comme autant de méthodes de test. Je cherche un moyen de faire la même chose dans MSTest. J'ai regardé l'attribut DataSource, mais il s'adresse à 1 source de données xml/csv par méthode de test, me forçant à écrire des centaines de méthodes de test. Je veux aussi garder chaque fichier xml séparé et ne pas les regrouper tous dans un fichier énorme, auquel cas il deviendrait inaccessible.Création dynamique de méthodes de test unitaires pendant l'exécution dans MSTest

Est-ce que quelqu'un a essayé ceci ou avez des suggestions?

Répondre

2

Pas exactement ce que vous avez demandé, mais vous pouvez utiliser pex pour les tests de boîte blanche automatisés et paramétrables. De cette façon, vous n'avez pas besoin de faire manuellement tout cela. Pex supporte MSTest ainsi que NUnit. Les tests générés utilisent un fichier supplémentaire, vous n'avez pas besoin de fichiers xml. Mais je pense que vous ne pouvez pas facilement utiliser vos fichiers .xml existants de NUnit et les partager avec MSTest en utilisant pex - si c'est ce que vous vouliez.

1

Je l'ai déjà fait. Voici ce que vous devez faire:

Le 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 et test2.xml doivent exister dans le répertoire MyTestData.

+0

Pourquoi le downvote? – frast