1

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

我试过用谷歌搜索解决方案,但结果要么是指旧版本的 Visual Studio,要么不是 .xlsx 文件。

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

4

1 回答 1

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

“Sheet1$”表示将 Excel 文档中名为“Sheet1”的整个工作表用作数据表。如果您愿意,您可以在 Excel 文档中创建命名范围,然后您可以将不带“$”符号的“NamedRangeName”作为数据表源。

于 2014-03-21T17:38:12.260 回答