不能阻止NHibernate在单元测试中向控制台写入日志
本文关键字:控制台 日志 单元测试 NHibernate 不能 | 更新日期: 2023-09-27 18:14:33
我有一些在本地数据库上使用nhibernate的单元测试。
我并不总是需要show_sql
输出,所以大多数时候我想停用它。但是无论我如何设置属性,无论是在测试项目
App.config
中<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
<property name="connection.connection_string_name">test</property>
<property name="show_sql">false</property>
<mapping assembly="MyLib"/>
</session-factory>
</hibernate-configuration>
或者通过测试类中的配置
_logger.Info("Configuring NHibernate");
_configuration = new Configuration().Configure();
_configuration.SetProperty("nhibernate.show_sql", "false");
_sessionFactory = _configuration.BuildSessionFactory();
控制台输出总是显示SQL语句,使控制台混乱。
我错过了什么?我是否设置了错误的值?
可以控制输出的另一个点;直接看方法!
SchemaExport export = new SchemaExport(_configuration);
export.Create(true, true);
Create
方法提供两个参数:
bool useStdOut, bool execute
第一个定义是否将SQL写入标准输出,第二个控制是否对数据库执行。
在复制/粘贴教程时,我总是将两者都设置为true,这将覆盖我之前配置的任何内容。
将第一个参数设置为false
后,我不再得到不想要的输出。