有没有人有任何经验让MSTest正确地将hibernate.cfg.xml复制到输出目录?我的所有MSTests都失败了,找不到hibernate.cfg.xml错误(我将它设置为Copy Always),但是我的MBUnit测试通过了。
答案 0 :(得分:12)
您可以尝试将DeploymentItemAttribute添加到其中一个测试中,或者编辑.testrunconfig文件并将该文件添加到“部署”列表中。
答案 1 :(得分:4)
编辑localtestrun.testrunconfig(在解决方案项目文件夹中)。选择部署选项,然后将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读取配置文件。