繁体   English   中英

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

[英]Data-Driven Unit Test from Excel Spreadsheet

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

我已经尝试使用Google搜索解决方案,但结果要么是指Visual Studio的较早版本,要么不是针对.xlsx文件。

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

我自己弄清楚了。

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

[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 $'。”

“ Sheet1 $”意味着Excel文档中名为“ Sheet1”的整个工作表将用作数据表。 如果您希望可以在Excel文档中进行命名范围,则可以将不带“ $”符号的“ NamedRangeName”作为数据表源。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM