2011-03-25 52 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」的配置文件。用記事本編輯並複製粘貼你的連接字符串到那裏。這對我來說是訣竅。