2009-12-02 5 views
8

MSTestに相当するSuiteBuilderはありますか?今のところ見つけられませんでした。MSTestでランタイム中にユニットテストメソッドを動的に作成

私はそれぞれがテストメソッドにマップされていると見なされるxmlファイルを持っています。これらの100sがあり、それぞれのテストを手動で記述するのは良い考えではありません。

nunitでは、ISuiteBuilderを実装し、テストケースを動的に実行し、それらの多くのテストメソッドとして表示することができます。

私はMSTestで同じことをする方法を探しています。

DataSource属性を調べましたが、テストメソッドごとに1つのデータソースxmlファイル/ csvを取得して、100sのテストメソッドを作成するようにしました。私はまた、各XMLファイルを別々にしておき、1つの巨大なファイルにまとめて保存したくない場合は、維持不能になります。

誰かがこれを試したことがありますか、または何か提案がありますか?

答えて

2

あなたが求めているのは正確ではありませんが、pexを使用して、自動化とパラメータ化可能なホワイトボックステストに使用できます。そのようにして、手動ですべてのことをする必要はありません。 Pexは、NUnitだけでなくMSTestもサポートしています。生成されたテストでは余分なファイルが使用されますが、xmlファイルは必要ありません。

しかし、NUnitの既存の.xmlファイルを簡単に使用することはできないと思っています。もしあなたが意図したものなら、pexを使ってMSTestと共有してください。

1

私はすでにこれを行っています。ここであなたがする必要がありますものです:

テスト:

[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とtest2.xmlはMyTestDataディレクトリに存在している必要があります。

+0

なぜdownvoteですか? – frast

関連する問題