Excel电子表格中的数据驱动单元测试

时间:2014-03-20 15:53:01

标签: excel visual-studio unit-testing visual-studio-2012 data-driven-tests

如何在VS2012中设置数据驱动的单元测试方法,从Excel .xlsx电子表格中读取数据?

我尝试使用Google搜索解决方案,但结果是指旧版Visual Studio或不适用于.xlsx文件。

到目前为止,我有一个测试类,测试方法和数据源文件TestData.xlsx,它在构建时被复制到输出目录。

1 个答案:

答案 0 :(得分:4)

自己想出来。

为您的测试方法提供以下属性:

[DeploymentItem("TestData.xlsx")]
[DataSource("System.Data.Odbc", @"Dsn=Excel Files;dbq=.\TestData.xlsx;defaultdir=.; driverid=790;maxbuffersize=2048;pagetimeout=5", "Sheet1$", DataAccessMethod.Sequential)]
[TestMethod]
public void MyTestMethod()
{
  ...
}

[DeploymentItem]只是确保.xlsx文件最终在测试最终执行的目录中。

您还需要将.xlsx文件添加到您的项目中,并在其中设置"复制到输出目录"财产到"复制如果更新"或"始终复制"或者.xlsx文件不会被复制到测试目录中,你会得到一个令人讨厌的不正确的错误,只是说" Microsoft Access数据库引擎无法找到对象' Sheet1 $'"

"工作表Sheet $"表示Excel文档中的整个工作表名为" Sheet1"将用作数据表。如果你想要你可以在Excel文档中创建命名范围,那么你可以放置" NamedRangeName"没有" $"签名作为您的数据表源。