2009-12-02 125 views
8

MSTest中是否有等效的SuiteBuilder?到目前爲止找不到一個。在MSTest中運行時動態創建單元測試方法

我有一堆xml文件,每個文件都被視爲映射到測試方法。因爲有100個這些,並且手動爲每個測試寫測試,所以不是一個好主意。

所以在nunit中,您可以實現ISuiteBuilder並讓測試案例動態運行並顯示爲那些許多測試方法。

我正在尋找一種方法來在MSTest中做同樣的事情。

我已經看過DataSource屬性,但它迎合了1個數據源xml文件/ csv每個測試方法,迫使我寫出100多個測試方法。我也想保留每個xml文件,並且不要將它們全部放在一個大文件中,這樣會變得無法維護。

有人試過這個或有什麼建議嗎?

回答

2

不完全符合您的要求,但您可以使用pex進行自動和可參數化的白盒測試。這樣,你不需要手動去做所有的事情。 Pex支持MSTest以及NUnit。生成的測試使用額外的文件,您不需要任何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 2011-07-14 13:28:54

相關問題