有谁有让 MSTest 将 hibernate.cfg.xml 正确复制到输出目录的经验吗?我的所有 MSTest 都因找不到 hibernate.cfg.xml 错误而失败(我将其设置为“始终复制”),但我的 MBUnit 测试通过了。

有帮助吗?

解决方案

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

其他提示

编辑 localtestrun.testrunco​​nfig (在您的解决方案项目文件夹中)。选择部署选项并将 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() 重载从程序集资源中读取配置文件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top