2008-08-21 6 views
7

MSTestでhibernate.cfg.xmlを出力ディレクトリに正しくコピーする経験がある人はいますか?すべての自分のMSTestが失敗してhibernate.cfg.xmlエラーが見つからない(私は常にCopyに設定されている)が、私のMBUnitテストは成功する。MSTestとNHibernate

答えて

12

テストのいずれかにDeploymentItemAttributeを追加するか、.testrunco​​nfigファイルを編集してファイルを展開リストに追加することができます。

1

答えではなく回避策:NHibernateはprogrammatic configurationをサポートしています。独自のネイティブプロパティ/ configファイルを作成し、起動時にハイバネート設定に解析することができます。

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設定ファイルを組み込みリソースとしてマークし、Assemblyリソースから設定ファイルを読み込むConfiguration.Configure()オーバーロードを使用します。

4

localtestrun.testrunco​​nfig(ソリューションアイテムフォルダ内)を編集します。展開オプションを選択し、展開する追加フ​​ァイルのリストにhibernate.cfg.xmlファイルを追加します。ファイルはテストが実行される出力ディレクトリにコピーされます。