2011-03-25 36 views
0

我尝试测试我的实体类,但我总是得到一个错误:NUnit的和App.config中

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

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

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

  • “实体”
  • “WebTest的”
  • “MVCApp”

实体项目具有.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> 
+5

如果您使用的是数据库资源,那么您基本上不会创建单元测试,而是创建一个集成测试。你应该为你的单元测试嘲笑数据库连接。 – Prutswonder 2011-03-25 09:41:42

+0

Oo谢谢你的回答。之前,当我测试数据库我总是开始交易,做一些数据库,检查结果和回滚事务。 – user634199 2011-03-25 10:02:43

+0

您是否参考WebTest项目中的实体项目? – 2011-03-25 10:24:41

回答

1

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

0

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