无法阻止NHibernate在单元测试中将日志写入控制台

时间:2015-09-24 12:56:37

标签: c# unit-testing nhibernate

我有一些单元测试可以在本地数据库上使用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语句,使控制台变得混乱。

我错过了什么?我设置的值是错误的吗?

1 个答案:

答案 0 :(得分:1)

原来还有另一点可以控制输出;直接在方法!

UIPickerView

myTextView.inputView = myPickerView; 方法提供了两个参数:

SchemaExport export = new SchemaExport(_configuration);
export.Create(true, true);

第一个定义SQL是否写入标准输出,第二个控制是针对数据库执行的。

从复制/粘贴教程开始,我总是将两者都设置为true,这覆盖了我之前配置的任何内容。

将第一个参数设置为Create后,我不再获得不需要的输出。