MSTest で hibernate.cfg.xml を適切に出力ディレクトリにコピーした経験のある人はいますか? MSTest はすべて、hibernate.cfg.xml が見つからないというエラーで失敗しますが (常にコピーするように設定しています)、MBUnit テストはパスします。
5 に答える
テストの 1 つに DeploymentItemAttribute を追加するか、.testrunconfig ファイルを編集してそのファイルを Deployment リストに追加してみてください。
localtestrun.testrunconfig (ソリューション アイテム フォルダー内) を編集します。デプロイ オプションを選択し、デプロイする追加ファイルのリストに hibernate.cfg.xml ファイルを追加します。ファイルは、テストが実行される出力ディレクトリにコピーされます。
数週間前に同じことに遭遇しました - これは実際にはMSTest のバグです - これは最近のService Pack リリースで修正されたと思います(まだ「アクティブ」と表示されていますが)。そうでない場合は、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();
}
答えではなく回避策:NHibernateはプログラムによる設定をサポートしています。そのため、独自のネイティブプロパティ/構成ファイルを記述して、起動時に休止状態の構成に解析できます。
NHibernate 構成ファイルを埋め込みリソースとしてマークし、アセンブリ リソースから構成ファイルを読み取る Configuration.Configure() オーバーロードを使用するのが好きです。