VS团队测试:净单元测试用Excel作为数据源:适配器失败数据源、适配器、单元测试、团队

2023-09-04 00:12:55 作者:-唇红齿白好少年

我试图做单元测试用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测试错误 - 单元测试适配器无法连接到数据源或读取数据

excel 图表 怎么设置动态数据源

数据驱动的单元测试问题

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