2008-08-21 45 views
7

有沒有人有任何經驗讓MSTest將hibernate.cfg.xml正確地複製到輸出目錄?我的所有MSTest失敗,找不到hibernate.cfg.xml錯誤(我把它設置爲始終複製),但是我的MBUnit測試通過。MSTest和NHibernate

回答

12

您可以嘗試將DeploymentItemAttribute添加到其中一個測試,或者編輯.testrunco​​nfig文件並將該文件添加到部署列表。

1

解決方法而不是一個答案:NHibernate支持programmatic configuration。因此您可以在啓動時編寫自己的本地屬性/配置文件並將其解析爲休眠配置。

2

幾周前進入相同的事情 - 這實際上是一個bug with MSTest - 我相信這是用最近Service Pack Release(即使它仍然說「活動」)糾正。如果不是,我所要做的就是直接引用我的hibernate.cfg.xml文件(馬虎,但適用於測試 - 這是在我的測試項目中從「TestResults」文件夾中引用hibernate.cfg.xml文件):

try 
      { 
       sessionFactory = new Configuration() 
        .Configure() 
        .BuildSessionFactory(); 
      } 
      // Assume we are in "MSTest mode" 
      catch (Exception) 
      { 
       sessionFactory = new Configuration() 
        .Configure(@"..\..\..\Program.Tests\" + @"\hibernate.cfg.xml") 
        .BuildSessionFactory(); 
      } 
1

我喜歡將我的NHibernate配置文件標記爲Embedded Resources,並使用Configuration.Configure()重載讀取Assembly資源中的配置文件。

4

編輯localtestrun.testrunco​​nfig(在解決方案項目文件夾中)。選擇部署選項並將hibernate.cfg.xml文件添加到要部署的其他文件的列表中。然後應該將該文件複製到測試運行的輸出目錄。