【问题标题】:Microsoft Unit Tests - Data source cannot be found in the test configuration settingsMicrosoft 单元测试 - 在测试配置设置中找不到数据源
【发布时间】:2015-03-30 18:03:35
【问题描述】:

我正在尝试在 C# 中构建数据驱动单元测试的测试类。我想使用 3 个数据库:一个来自 SQL,一个来自 Access,一个来自 Excel。 这是我的 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=10.0.0.0, 
                   Culture=neutral"/>
  </configSections>

  <connectionStrings>
    <add name="MyJetConn"
         connectionString="Provider=Microsoft.ACE.OLEDB.12.0;
                           Data Source=H:\SQA\CoolMath\CoolMath\Database1.accdb;
                           Persist Security Info=False;"
         providerName="System.Data.OleDb" />

    <add name="MyExcelConn"
         connectionString="Dsn=Excel Files;
                           dbq=H:\SQA\CoolMath\CoolMath\CoolMathExcelDataTable.xlsx;
                           defaultdir=.;
                           driverid=1046;
                           maxbuffersize=2048;
                           pagetimeout=5"
         providerName="System.Data.Odbc" />

    <add name="MSSQLConn"
         connectionString="Data Source=H:\SQA\CoolMath\CoolMath\SQLExpress;
                           Initial Catalog=MSSQLDB;
                           Integrated Security=SSPI;"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

  <microsoft.visualstudio.testtools>
    <dataSources>
      <add name="MyJetDataSource"
           connectionString="MyJetConn"
           dataTableName="CoolMathAcessDataTable"
           dataAccessMethod="Sequential"/>
      <add name="MyExcelDataSource"
           connectionString="MyExcelConn"
           dataTableName="Sheet1$"
           dataAccessMethod="Sequential"/>
      <add name="MSSQLDataSource"
           connectionString="MSSQLConn"
           dataTableName="dbo.CoolMathDataTable"
      dataAccessMethod="Sequential"/>
    </dataSources>
  </microsoft.visualstudio.testtools>
</configuration>

当我尝试运行测试时,它们都失败并显示以下消息:

“在测试配置设置中找不到数据源”。

我看不出我做错了什么,也许是数据库的位置? (它们都与代码项目和 XML 文件在同一个库中)。

在单元测试之上,我放置了以下属性:

[TestMethod()] [DeploymentItem("CoolMath\\CoolMathExcelDataTable.xlsx")]    
[DataSource("MyExcelDataSource")]

【问题讨论】:

  • 使用 Visual Studio Ultimate 2013:
  • 属性例如:[TestMethod()] [DeploymentItem("CoolMath\\CoolMathExcelDataTable.xlsx")] [DataSource("MyExcelDataSource")]
  • 2013 年使用版本 12.0.0.0
  • 请根据我们的回答进行编辑,以添加 cmets 中请求的额外数据。

标签: c# unit-testing visual-studio-2013 mstest data-driven-tests


【解决方案1】:

使用 Visual Studio,数据源的相对路径已经移动。 我正在使用 XML 文件,但如果 xlsx 文件有同样的问题,我不会感到惊讶。我必须使用以下内容才能使文件正常工作

[DeploymentItem("TestData\\Search.xml")] [DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", @"|DataDirectory|\\..\TestData\Search.xml", "Row", DataAccessMethod.Sequential)] 请注意第 2 行中的路径,它以 \..\ 开头 这是因为相对路径从解决方案更改为项目(反之亦然)。 Test_Data 是项目顶部的文件夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-10
    • 1970-01-01
    • 2017-07-05
    • 1970-01-01
    • 2016-08-19
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    相关资源
    最近更新 更多