编码的UI单元测试Excel连接字符串不起作用

时间:2013-06-05 08:53:02

标签: c# excel unit-testing connection-string coded-ui-tests

我正在尝试使用编码的ui和excel电子表格(xlsx)中的动态数据。我的DataSource属性似乎存在问题。我收到一条错误,说无法连接到数据源。这是我的连接字符串:

[DataSource("System.Data.Odbc", "Dsn=Excel Files;dbq=|DataDirectory|C:\\Test1.xlsx;defaultdir=C:\\;driverid=1046;maxbuffersize=2048;pagetimeout=5", "Sheet1$", DataAccessMethod.Sequential), DeploymentItem("Test1.xlsx"), TestMethod]

xlsx文件有效并位于正确的位置。

由于

4 个答案:

答案 0 :(得分:2)

将文件另存为xls而不是xlsx并删除“| DataDirectory |”来自连接字符串。这应该有助于:)

答案 1 :(得分:1)

dbq 子句看起来不对。 |DataDirectory|部分是与值的其余部分连接的参数。所以实际上该子句是从名为ValueOfDataDirectoryC:\\Test1.xlsx的文件中获取数据。 Microsoft文档(请参阅http://msdn.microsoft.com/en-us/library/ee624082.aspx)显示了示例(我添加了换行符):

DataSource("System.Data.Odbc",
    "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};
        dbq=|DataDirectory|\\Data.xls;
        defaultdir=.;driverid=790;maxbuffersize=2048;
        pagetimeout=5;readonly=true",
    "Sheet1$", DataAccessMethod.Sequential), TestMethod]

请注意上面没有任何C:

尝试将 dbq 子句更改为dbq=C:\\Test1.xlsx

测试

答案 2 :(得分:1)

将您的.Xls文件添加到解决方案中,并记下文件的路径

尝试更改

[DataSource("System.Data.Odbc", 
    "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};
        dbq=[FullPath Of your .xls file];
        defaultdir=.; driverid=790;
        maxbuffersize=2048; pagetimeout=5; readonly=true",
        "Sheet1$", DataAccessMethod.Sequential), TestMethod]

EG:

[DataSource("System.Data.Odbc", 
     "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};
        dbq=C:\\Users\\user1\\documents\\visual studio 2012\\Projects\\Demo\\Demo\\Book1.xlsx;
        defaultdir=.;driverid=790;
        maxbuffersize=2048;pagetimeout=5;readonly=true", 
        "Sheet1$", DataAccessMethod.Sequential), TestMethod]

答案 3 :(得分:1)

尝试将xls文件与此连接字符串一起使用:

[DataSource("System.Data.Odbc", @"Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=C:\\Test1.xls;defaultdir=.;driverid=79‌​0;maxbuffersize=2048;pagetimeout=5;readonly=true","Sheet1$", DataAccessMethod.Sequential), TestMethod]

有同样的问题,多亏了这里它现在已经解决了:)