在NHibernate中,我打开show_sql
来运行单元测试。我的每个单元测试都会清除数据库并重新填充它,这导致大量的SQL查询,我不希望NHibernate输出。以编程方式设置show_sql而不重新创建SessionFactory?
是否有可能控制show_sql
不破坏SessionFactory
?如果可能,我想在运行测试设置时将其关闭,然后在测试主体开始运行时再次打开它。
这可能吗?
在NHibernate中,我打开show_sql
来运行单元测试。我的每个单元测试都会清除数据库并重新填充它,这导致大量的SQL查询,我不希望NHibernate输出。以编程方式设置show_sql而不重新创建SessionFactory?
是否有可能控制show_sql
不破坏SessionFactory
?如果可能,我想在运行测试设置时将其关闭,然后在测试主体开始运行时再次打开它。
这可能吗?
唯一你可以设置的地方是当建立一个NHibernate.Cfg.Configuration
。 一旦你从你的Configuration
创建SessionFactory
,有没有办法来访问的配置设置,我认为这是原因,使用工厂模式之一:确保一旦实例成功构建不能运行搞砸重新配置或错误配置。
如果你真的需要这个功能,获得NH源代码,并发现其中show_sql设置已评估的地方。
另一种选择,虽然它可能/可能不会像好是使用NHProf和测试时,只是初始化NHProf。
NHProf不记录设置/清除数据库只是使用查询。