不能阻止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语句,使控制台混乱。

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

不能阻止NHibernate在单元测试中向控制台写入日志

可以控制输出的另一个点;直接看方法!

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

Create方法提供两个参数:

bool useStdOut, bool execute

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

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

将第一个参数设置为false后,我不再得到不想要的输出。