【问题标题】:Coded UI Test Excel Connection String Directory Error编码的 UI 测试 Excel 连接字符串目录错误
【发布时间】:2013-10-22 13:31:37
【问题描述】:

我正在尝试在我的 coded-ui 测试中使用 excel,但我的连接字符串不起作用。你能帮我解决这个问题吗?我很喜欢这个:) 好的,这里->我的数据目录是C:\(直接在C盘) 我的连接字符串是

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

这非常有效。但我希望我的文件位于“D:\TestProjects\Coded2\DataFiles\Data1.xls”中,但我做不到。得到一些错误和测试失败。

我应该如何写我的数据目录?

感谢您的帮助。

【问题讨论】:

  • 你使用了什么[DataSource...] 字符串,究竟是什么错误?
  • 我确实使用过这个:[DataSource("System.Data.Odbc", "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=D:\TestProjects\ Coded2\DataFiles\Data1.xls;defaultdir=.;driverid=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod] 并出现错误:无法识别的转义序列跨度>
  • 您使用的是 VS2010 还是 2012(甚至是 2013)?您可以在 VS2010 中使用一个数据连接向导来为您创建字符串。如果您使用的是 2012 年,则必须自己编写代码 - 我不确定 2013 年的情况。

标签: excel directory connection-string coded-ui-tests


【解决方案1】:

有效且存在问题的版本是

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

失败的版本在评论中显示,是

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

显着的区别在于反斜杠\ 在起作用的那个中加倍,因为它们是字符串中的转义字符。 C# 将每个反斜杠加上以下字母作为转义序列。所以文件名D:\TestProjects\Coded2\DataFiles\Data1.xls\T\C\D\D,编译器说其中一个或多个无法识别。

您还可以编写带有前导 @ 的 C# 字符串,这意味着反斜杠表示它们本身。所以如果写成非工作版本应该可以工作

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

【讨论】:

  • @Aurora 如果问题已被回答,那么请您将其标记为已回答,否则人们可能会想知道该问题还想要什么。
猜你喜欢
  • 1970-01-01
  • 2011-08-01
  • 2021-11-04
  • 2018-01-09
  • 1970-01-01
  • 2019-12-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-28
相关资源
最近更新 更多