MSTest和NHibernate

时间:2020-03-05 18:41:33  来源:igfitidea点击:

有没有人有让MSTest将hibernate.cfg.xml正确复制到输出目录的经验?我所有的MSTest都失败,并出现hibernate.cfg.xml错误(我将其设置为"始终复制"),但是我的MBUnit测试通过了。

解决方案

回答

我们可以尝试将DeploymentItemAttribute添加到测试之一,或者编辑.testrunco​​nfig文件,然后将该文件添加到"部署"列表中。

回答

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

回答

几周前遇到了同样的事情-这实际上是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配置文件标记为Embedded Resources,并使用Configuration.Configure()重载从组件资源中读取配置文件。

回答

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