我正在使用VSTS 2K8,我已经建立了一个单元测试项目.在其中,我有一个测试类,其方法可以执行简单的断言.我正在使用Excel 2007电子表格作为我的数据源.
我的测试方法如下所示:
[DataSource("System.Data.Odbc", "Dsn=Excel Files;dbq=|DataDirectory|\\MyTestData.xlsx;defaultdir=C:\\TestData;driverid=1046;maxbuffersize=2048;pagetimeout=5", "Sheet1", DataAccessMethod.Sequential)] [DeploymentItem("MyTestData.xlsx")] [TestMethod()] public void State_Value_Is_Set() { string expected = "MD"; string actual = TestContext.DataRow["State"] as string; Assert.AreEqual(expected, actual); }
如方法装饰属性所示,我的Excel电子表格位于我的本地C:/ Drive上.在其中,我所有数据所在的工作表名为"Sheet1".
我已将Excel电子表格复制到我的项目中,并设置了Build Action ="Content",并将其Copy设置为Output Directory ="Copy if Newer".
尝试运行这个简单的单元测试时,我收到以下错误:
单元测试适配器无法连接到数据源或读取数据.有关解决此错误的详细信息,请参阅MSDN Library中的"数据驱动单元测试疑难解答"(http://go.microsoft.com/fwlink/?LinkId=62412).错误详细信息:错误[42S02] [Microsoft] [ODBC Excel驱动程序] Microsoft Office Access数据库引擎找不到对象'Sheet1'.确保对象存在,并且您正确拼写其名称和路径名称.
我已经验证了工作表名称拼写正确(即Sheet1),并且我已经验证我的数据源设置正确.
网络搜索根本没有发生太多变化.我完全难过了.
所有帮助或输入都很赞赏!!!!
将Excel(.xlsx)的"Build Action"属性更改为Content,将"Copy to Output Directory"更改为Copy for new.
当我遇到与你相同的错误时,这对我有用...
++也不要忘记浏览并在服务器源中的TestRun.config文件的Deployment选项卡中添加excel文件.. :)