如何在VS2012中设置数据驱动的单元测试方法,从Excel .xlsx电子表格中读取数据?
我尝试使用Google搜索解决方案,但结果是指旧版Visual Studio或不适用于.xlsx文件。
到目前为止,我有一个测试类,测试方法和数据源文件TestData.xlsx,它在构建时被复制到输出目录。
答案 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"没有" $"签名作为您的数据表源。