2011-01-05 9 views
2

私はNUnit & ReSharperを使ってユニットテストプロジェクトからNHibernateロギング情報を取得しようとしています。テストプロジェクトはクラスライブラリとして構成され、独自のApp.Configファイルを持ちます。私はApp.Configファイルが正しいことを知っています。なぜなら、コンソールアプリケーションで使用すると、NHibernateのすべてのログが表示されるからです。このApp.Configファイルが単体テストプロジェクトに配置されると、Log4Netは不思議に動作を停止します。ReharperでユニットテストプロジェクトからNHibernate情報をログに記録

私も、テストプロジェクト自体でLog4Netを初期化して遊びました。私は[assembly: log4net.Config.XmlConfigurator()]をAssemblyInfo.csファイルに追加しようとしました。私も電話してみました...

[SetUp] 
    public void Setup() 
    { 
     log4net.Config.XmlConfigurator.Configure(); 
    } 

...テストフィクスチャで。何も動作しません。どんなアイデアでも大歓迎です。

+1

あなたの質問はResharperとは関係ありません。私はResharperテストランナーを使用していると推測していますが、実際にはNUnitを使用して実際のテストを実行しています。 resharperタグと質問の名前を削除することをお勧めします。あなたの問題が何であるかをわかってうれしいです。 – NerdFury

答えて

1

私はそれを理解しました。

さて、最初の問題は、私がWin7で書いていたディレクトリにアクセスできないため、Log4Netが黙って失敗していたことです。 Log4Net Appenderのディレクトリを\ nhibernate.logに変更し、これをデフォルトのDebugディレクトリに書き出します。

<appender name="RollingFile" type="log4net.Appender.RollingFileAppender,log4net"> 
    <file value=".\nhibernate.log"/> 
    <appendToFile value="true"/> 
    <maximumFileSize value="100KB"/> 
    <rollingStyle value="Size"/> 
    <maxSizeRollBackups value="5"/> 
    <layout type="log4net.Layout.PatternLayout,log4net"> 
    <conversionPattern value="%d{HH:mm:ss.fff} [%t] %-5p %c - %m%n"/> 
    </layout> 
</appender> 

また、次のようにLog4Netをテストフィクスチャで初期化しなければなりませんでした。

[SetUp] 
    public void Setup() 
    { 
     log4net.Config.XmlConfigurator.Configure(); 
    } 
3

ちょうどコンソールにログするlog4net.Config.BasicConfigurator.Configure();を使用します。追加の設定やファイルは必要ありません。

関連する問題