我试图做单元测试用Excel作为数据源。我收到以下异常。我们如何纠正?
单元测试适配器无法连接到数据源或读取数据。有关解决此错误的详细信息,请参阅故障排除数据驱动的单元测试
[TestMethod的]
[所有者(Lijo Cheeran)
[TestProperty(TestCategory,开发),
数据源(Microsoft.ACE.OLEDB.12.0
数据源= C:/Sheets/DataSheet.xlsx;扩展属性= Excel的12.0;
[工作表Sheet1 $],
DataAccessMethod.Sequential)]
公共无效ChangePasswordTest()
{
INT一个= Convert.ToInt32(TestContext.DataRow [0]); //(int)Column.UserId
INT B = Convert.ToInt32(TestContext.DataRow [1]);
INT expectedResult = Convert.ToInt32(TestContext.DataRow [2]);
MyClass的MyObj中=新MyClass的(1,P @ ssw0rd);
INT actualResult = myObj.GetAdditionResult(A,B);
Assert.AreEqual&其中; INT>(expectedResult,actualResult,相加结果是不正确。);
}
阅读:
Unit测试错误 - 单元测试适配器无法连接到数据源或读取数据
数据驱动的单元测试问题
How创建启动和清理脚本的Visual Studio的测试项目?
How难道MSTEST / Visual Studio 2008团队测试确定测试方法的执行顺序?
Visual Studio 2010的最终 - 数据生成计划设置为列数据类型不正确
我应该如何单元测试的简单CRUD级?
解决方案解决它自己以不同的方式。其他的答案是欢迎的。
请参考:演练:使用配置文件来定义数据源 HTTP:/ /msdn.microsoft.com/en-us/library/ms243192.aspx
[TestMethod的]
[DeploymentItem(C:/Sheets/DataSheet.xlsx)]
[数据源(MyExcelDataSource)]
公共无效ChangePasswordTest()
{
INT一个= Convert.ToInt32(TestContext.DataRow [0]); //(int)Column.UserId
INT B = Convert.ToInt32(TestContext.DataRow [1]);
INT expectedResult = Convert.ToInt32(TestContext.DataRow [2]);
MyClass的MyObj中=新MyClass的(1,P @ ssw0rd);
INT actualResult = myObj.GetAdditionResult(A,B);
Assert.AreEqual&其中; INT>(expectedResult,actualResult,相加结果是不正确。);
}
的app.config
<结构>
< configSections>
<节名称=microsoft.visualstudio.testtools
TYPE =Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection,Microsoft.VisualStudio.QualityTools.UnitTestFramework,版本= 10.0.0.0,文化=中性公钥= b03f5f7f11d50a3a/>
< / configSections>
<的ConnectionStrings>
<添加名称=MyExcelConn
的connectionString =DSN = Excel文件; DBQ = C:/Sheets/DataSheet.xlsx; DEFAULTDIR =; driverid = 790; maxbuffersize = 2048;将PageTimeout = 5的providerName =System.Data.Odbc/>
< /的ConnectionStrings>
< microsoft.visualstudio.testtools>
<数据源>
<添加名称=MyExcelDataSource
的connectionString =MyExcelConn
dataTableName =工作表Sheet1 $
dataAccessMethod =顺序/>
< /数据源>
< /microsoft.visualstudio.testtools>
< /结构>
有关VS 2010,使用TestTools版本为= 10.0.0.0
I am trying to do Unit Testing with Excel as data source. I am getting the following exception. How do we correct it?
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"
[TestMethod]
[Owner("Lijo Cheeran")]
[TestProperty("TestCategory", "Developer"),
DataSource("Microsoft.ACE.OLEDB.12.0",
"Data Source=C:/Sheets/DataSheet.xlsx;Extended Properties=Excel 12.0;",
"[Sheet1$]",
DataAccessMethod.Sequential)]
public void ChangePasswordTest()
{
int a = Convert.ToInt32(TestContext.DataRow[0]); //(int)Column.UserId
int b = Convert.ToInt32(TestContext.DataRow[1]);
int expectedResult = Convert.ToInt32(TestContext.DataRow[2]);
MyClass myObj = new MyClass(1, "P@ssw0rd");
int actualResult = myObj.GetAdditionResult(a, b);
Assert.AreEqual<int>(expectedResult, actualResult, "The addition result is incorrect.");
}
Readings:
Unit Testing Error - The unit test adapter failed to connect to the data source or to read the data
Data driven unit tests problem
How to create Startup and Cleanup script for Visual Studio Test Project?
How Does MSTEST/Visual Studio 2008 Team Test Decide Test Method Execution Order?
Visual Studio 2010 Ultimate - Data Generation Plan Setting Incorrect Data Type for Column
How should I unit-test a simple CRUD-class?
解决方案
Solved it myself in a different way. Other answers are welcome.
Refer: Walkthrough: Using a Configuration File to Define a Data Source http://msdn.microsoft.com/en-us/library/ms243192.aspx
[TestMethod]
[DeploymentItem("C:/Sheets/DataSheet.xlsx")]
[DataSource("MyExcelDataSource")]
public void ChangePasswordTest()
{
int a = Convert.ToInt32(TestContext.DataRow[0]); //(int)Column.UserId
int b = Convert.ToInt32(TestContext.DataRow[1]);
int expectedResult = Convert.ToInt32(TestContext.DataRow[2]);
MyClass myObj = new MyClass(1, "P@ssw0rd");
int actualResult = myObj.GetAdditionResult(a, b);
Assert.AreEqual<int>(expectedResult, actualResult, "The addition result is incorrect.");
}
App.Config
<configuration>
<configSections>
<section name="microsoft.visualstudio.testtools"
type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>
</configSections>
<connectionStrings>
<add name="MyExcelConn"
connectionString="Dsn=Excel Files;dbq=C:/Sheets/DataSheet.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>
For VS 2010, TestTools version used is Version=10.0.0.0