【问题标题】:NUnit and App.configNUnit 和 App.config
【发布时间】:2015-03-11 20:18:30
【问题描述】:

我尝试测试我的实体类,但总是失败:

System.Data.MetadataException:
无法加载指定的元数据资源。

我认为问题在于连接字符串和App.config。我尝试了很多东西:添加一些东西来构建事件,更改配置名称,将配置文件复制到解决方案文件夹,项目文件夹,project_folder/bin/debug,再次更改很多名称......但它仍然不起作用.

我有一个包含 3 个项目的“AppProject”解决方案:

  • “实体”
  • “网络测试”
  • “MVCApp”

Entity 项目有一个 .edmx 文件和简单的 POCO 类。当我将Entity/App.config 的连接字符串添加到MVCApp/Web.config 时,“MVCApp”和数据库工作正常。

当我将 Entity/App.config 复制到 WebTest/App.config 时,它不起作用。不知道问题出在哪里。

我使用 Visual NUnit,但是当我尝试在 NUnit 中打开时仍然无法正常工作。

我的App.config

<connectionStrings>
  <add name="UserDB"
       connectionString="metadata=res://*/Model.Entity.csdl|
                                  res://*/Model.Entity.ssdl|
                                  res://*/Model.Entity.msl;
                         provider=System.Data.SqlClient;
                         provider connection string=
                                  &quot;Data Source=.\SQLExpress;
                                  Initial Catalog=TestDB;
                                  Integrated Security=True;
                                  MultipleActiveResultSets=True&quot;"
       providerName="System.Data.EntityClient" />
  <!-- NOTE: line breaks in the above connection string have been inserted only
             for better legibility. -->
</connectionStrings>

【问题讨论】:

  • 如果您使用的是数据库资源,那么您实际上不是在创建单元测试,而是在创建集成测试。您应该为单元测试模拟数据库连接。
  • 噢,谢谢您的回答。以前,当我测试数据库时,我总是启动事务,在数据库上做一些事情,检查结果并回滚事务。
  • WebTest项目中是否引用Entity项目?
  • 当然,我在 WebTest 项目中使用实体项目中的 poco 类:)
  • 单元测试的目的是测试你的代码,而不是你的代码使用的数据框架。这就是为什么您需要模拟数据库连接,以便您可以伪造(和测试)任何连接问题。在单元测试中使用真实的数据库连接是不好的做法。

标签: c# database entity-framework tdd nunit


【解决方案1】:

看我的回答nunit and configs 您需要告诉 nunit 配置文件的名称是什么。默认情况下它会查找 namespace.config 它接缝

【讨论】:

    【解决方案2】:

    运行 webtest 查看任务管理器中运行的处理器。我的是 QTAgent32_40,通常转到 C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE 下的配置文件。查找名为“QTAgent32_40.exe.config”的配置文件。用记事本编辑它并将您的连接字符串复制粘贴到那里。这对我有用。

    【讨论】:

      猜你喜欢
      • 2011-01-25
      • 2010-10-31
      • 2015-08-31
      • 2010-09-15
      • 2011-02-27
      • 2011-08-09
      • 2011-03-27
      • 2021-07-28
      • 2010-10-09
      相关资源
      最近更新 更多