【发布时间】:2009-07-07 18:19:21
【问题描述】:
我正在尝试在我的 VS 2008 测试项目中使用 Excel 2007 作为数据源进行单元测试。
配置文件:
<configuration>
<configSections>
<section name="microsoft.visualstudio.testtools"
type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</configSections>
<connectionStrings>
<add name="MyExcelConn"
connectionString="Dsn=Excel Files;dbq=SearchTestValues.xlsx;defaultdir=.; driverid=790;maxbuffersize=2048;pagetimeout=5"
providerName="System.Data.Odbc" />
</connectionStrings>
<microsoft.visualstudio.testtools>
<dataSources>
<add name="MyExcelDataSource"
connectionString="MyExcelConn"
dataTableName="Sheet1$"
dataAccessMethod="Sequential"/>
</dataSources>
</microsoft.visualstudio.testtools>
</configuration>
我的测试代码:
[TestMethod]
[DeploymentItem("SearchTestValues.xlsx")]
[DataSource("MyExcelDataSource")]
public void ShouldReturnResultsValidity()
{
var minDate = (DateTime)TestContext.DataRow["MinDate"];
var maxDate = (DateTime)TestContext.DataRow["MaxDate"];
var minStatus = (int)TestContext.DataRow["MinStatus"];
var maxStatus = (int)TestContext.DataRow["MaxStatus"];
var criteria = new SearchCriteria(minDate, maxDate, minStatus, maxStatus);
Assert.IsTrue(criteria.IsValid());
}
excel 文件位于项目的根文件夹中。文件 BuildAction 设置为 Content 并且 Deploy 设置为如果较新则复制。我还将文件添加到部署项列表中,以便在运行测试时将 excel 文件部署到 TestResults 文件夹的 out 文件夹中。
当我运行此测试时,出现以下错误:
The unit test adapter failed to connect to the data source or to read the data. For more information on troubleshooting this error, see "Troubleshooting Data-Driven Unit Tests" (http://go.microsoft.com/fwlink/?LinkId=62412) in the MSDN Library.
Error details: ERROR [42S02] [Microsoft][ODBC Excel Driver] The Microsoft Office Access database engine could not find the object 'Sheet1$'. Make sure the object exists and that you spell its name and the path name correctly.
知道为什么我会收到此错误吗?
谢谢
【问题讨论】:
标签: c# visual-studio-2008 unit-testing