VS单元测试的数据源配置,出错

flashyy 2010-10-28 07:16:50
**出错信息为:
“单元测试适配器引发异常: System.Data.Odbc.OdbcException: ERROR [42000] [Microsoft][ODBC Excel Driver] 不能更新。数据库或对象为只读。
ERROR [IM006] [Microsoft][ODBC 驱动程序管理器] 驱动程序的 SQLSetConnectAttr 失败
ERROR [42000] [Microsoft][ODBC Excel Driver] 不能更新。数据库或对象为只读。”

**操作步骤为:
1.在测试项目TestProject1中添加App.Config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</configSections>
<connectionStrings>
<add name="MyExcelConn" connectionString="Dsn=Excel Files;dbq=ch05.xls;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>

2.在测试文件Form1Test.cs文件中,添加测试方法,使用配置文件定义的数据源
[TestMethod()]
[DeploymentItem("ch05.xls")]
[DataSource("MyExcelDataSource")]
public void MyTestMethod2()
{
//数据驱动的方式(使用App.Config定义的数据源)
Form1 target = new Form1();
TestProject1.AUT_Form1Accessor accessor = new TestProject1.AUT_Form1Accessor(target);
//获取测试输入数据的第一列,作为被测试方法的输入参数
int i = Int32.Parse(testContextInstance.DataRow.ItemArray[0].ToString());
//获取测试输入数据的第二列,作为被测试方法的输入参数
int j = Int32.Parse(testContextInstance.DataRow.ItemArray[1].ToString());
//获取测试输入数据的第三列,作为预期结果
int expected = Int32.Parse(testContextInstance.DataRow.ItemArray[2].ToString());
int actual;
actual = accessor.Add(i, j);
Assert.AreEqual(expected, actual, "AUT.Form1.Add 未返回所需的值。");
}

3.excel文件的路径和App.Config、Form1Test.cs在同一层,excel文件名字为ch05.xls

4.得到出错信息如下:
“单元测试适配器引发异常: System.Data.Odbc.OdbcException: ERROR [42000] [Microsoft][ODBC Excel Driver] 不能更新。数据库或对象为只读。
ERROR [IM006] [Microsoft][ODBC 驱动程序管理器] 驱动程序的 SQLSetConnectAttr 失败
ERROR [42000] [Microsoft][ODBC Excel Driver] 不能更新。数据库或对象为只读。”
...全文
339 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
flashyy 2010-10-28
  • 打赏
  • 举报
回复
把路径又改回原来的写法,竟然测试用例通过了。
莫名其妙地解决了问题。
wuyq11 2010-10-28
  • 打赏
  • 举报
回复
检查连接字符串,文件名
flashyy 2010-10-28
  • 打赏
  • 举报
回复
excel路径,改成绝对路径,测试用例通过了。
但是相对路径就是不行,正确的应该怎么写呢?

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧