MSTest和NHibernate

时间:2008-08-21 15:02:53

标签: nhibernate mstest mbunit

有没有人有任何经验让MSTest正确地将hibernate.cfg.xml复制到输出目录?我的所有MSTests都失败了,找不到hibernate.cfg.xml错误(我将它设置为Copy Always),但是我的MBUnit测试通过了。

5 个答案:

答案 0 :(得分:12)

您可以尝试将DeploymentItemAttribute添加到其中一个测试中,或者编辑.testrunco​​nfig文件并将该文件添加到“部署”列表中。

答案 1 :(得分:4)

编辑localtestrun.testrunco​​nfig(在解决方案项目文件夹中)。选择部署选项,然后将hibernate.cfg.xml文件添加到要部署的其他文件列表中。然后,该文件将被复制到运行测试的输出目录。

答案 2 :(得分: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();
            }

答案 3 :(得分:1)

解决方法而不是答案:NHibernate支持programmatic configuration。因此,您可以编写自己的本机属性/配置文件,并在启动时将其解析为休眠配置。

答案 4 :(得分:1)

我喜欢将我的NHibernate配置文件标记为嵌入式资源,并使用Configuration.Configure()重载从Assembly Resources读取配置文件。