题
有谁有让 MSTest 将 hibernate.cfg.xml 正确复制到输出目录的经验吗?我的所有 MSTest 都因找不到 hibernate.cfg.xml 错误而失败(我将其设置为“始终复制”),但我的 MBUnit 测试通过了。
解决方案
您可以尝试将 DeploymentItemAttribute 添加到您的测试之一,或者编辑 .testrunconfig 文件并将该文件添加到部署列表中。
其他提示
编辑 localtestrun.testrunconfig (在您的解决方案项目文件夹中)。选择部署选项并将 hibernate.cfg.xml 文件添加到要部署的其他文件列表中。然后,该文件应该被复制到运行测试的输出目录。
几周前遇到了同样的事情——这实际上是一个 MSTest 的错误 ——我相信最近的更新已经纠正了这个问题 服务包发布 (尽管它仍然显示“活动”)。如果没有,我所要做的就是直接引用我的 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() 重载从程序集资源中读取配置文件。
不隶属于 StackOverflow