2008-08-21 58 views
7

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

回答

12

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

1

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

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(); 
      } 
1

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

4

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