2010-11-11 63 views
0

因此,TestMethod在一次測試運行中只運行一次。使用不同數據集運行TestMethod而不是數據庫

我該如何在一次測試運行中讓TestMethod運行多次,每次都爲我設置的不同數據集?我的數據不是來自數據庫或文件;我想構建測試數據模型的幾個不同的內存實例。

TestInitialize不讓我這樣做,因爲它只運行一次。

什麼在控制TestMethods的執行?如何讓它爲每個數據集重新運行我的TestMethods,然後如何訪問數據集?

我以爲TestContext會很有用,但它似乎只是數據庫?

回答

1

什麼你正在尋找的是所謂的數據驅動測試 。 看例如有關如何使用MSTest完成此操作的說明,請參閱herehere

HTH。
Thomas

+0

謝謝!這基本上是我正在尋找的。 – 2010-11-11 21:53:21

+0

第二個鏈接已損壞。你能看看能否修好嗎? – peval27 2017-04-05 22:06:13

0

您可以定義它調用其它測試方法多次,做正確的設置後,我並不是說這是做一件好事的測試方法,但我相信它會工作

public class TestClass 
{ 
//This is where the per-data-source test is. This is not marked as a TestMehod because 
//it will not be invoked directly by the test runner. 
public void ActualTest() 
{ 
//Per-data-source test logic here. 
} 
[TestMethod] 
public void RunActualTestsMultipleTimesWithDifferentConfigs() 
{ 

//Setup for test run with data set 1 
ActualTest(); 
//Setup for test with data set 2 
ActualTest(); 
} 
} 

這感覺像一個可怕的,可怕的黑客,我坦率地承認這一點。如果我有其他選擇,我不會使用它,但它可能是一個選項。

另一種可能性是尋找到MSTest的是如何擴展的,具體而言即是否有任何mechinism修改或擴展的測試運行

+0

擴展測試框架將是一個完全不同的項目,但我認爲它很有趣。 MSDN沒有給出方法的描述,我沒有看到任何'虛擬'。無論如何,這些東西可以在命名空間Microsoft.VisualStudio.TestTools.Framework中找到。 – 2010-11-13 22:36:30

相關問題