获取TestInitialize上的列表并将其用于数据驱动的测试用例

时间:2015-01-02 07:30:21

标签: mstest data-driven-tests

我正在编写一个单元测试用例来获取excel表中的文件列表并从中提取一些数据。 在这篇文章之后:http://www.codeproject.com/Tips/629895/Data-Driven-Testing-by-Excel-Named-Region

[DataSource("System.Data.Odbc", "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=C:\\quovantis.git\\kmu\\InputManagement\\KMU.Factoring.Service.Test\\TestData\\TestCasesReferenceData.xls;", "Sheet2$", DataAccessMethod.Sequential)]
    [TestMethod]
    public void DataDrivenInvoiceCheck()
    {
        int clientId = Convert.ToInt32(TestContext.DataRow["ClientId"]);
        //Validate stuff 
    }

截至目前,此工作正常。 但是,我想在使用TestInitialize属性的方法中为多个测试填充此数据,并且正在寻找一种方法将数据存储在List或其他内容中并对其进行迭代。

例如:

[DataSource("System.Data.Odbc", "Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=C:\\TestCasesReferenceData.xls;", "Sheet2$", DataAccessMethod.Sequential)]
[TestInitialize]
void GetDataFromDataSource()
{
  //Get the Data from the data source store it in a class level variable or something
}

[TestMethod]
void TestMethod1()
{
    //Use Data brought from above (Data Driven Test Case)
}

 [TestMethod]
void TestMethod2()
{
    //Use Data brought from above (Data Driven Test Case)
}

1 个答案:

答案 0 :(得分:0)

嗯,您可以自己给出答案:'从数据源获取数据将其存储在类级变量或其他内容中。

这种全局变量方法似乎有效。

[TestClass]
public class Example1Test
{
    public int GlobalIntTest = 42;

    [TestMethod]
    public void MyTestMethod()
    {
        //do something with the global variable
    }
}