0

私のオープン ソース .NET ソフトウェアは、Log4net を問題なく使用しています。

しかし、NUnit でテストすると、2 回目のテストで以下のエラーが発生します。たとえば、テストを 2 回実行すると、テストが何であれ、1 回目は成功し、2 回目は失敗します。

System.IO.IOException : 別のプロセスで使用されているため、プロセスはファイル 'C:\Users\win7pro32bit\AppData\Roaming\cmissync\debug_log.txt' にアクセスできません。

ログ ファイルは、log4net.Config.XmlConfigurator.Configure(path) への静的呼び出しによって作成されます。

どうにかして TearDown でログ ファイルを閉じる必要があると思いますが、log4net の「閉じる」メソッドが表示されません。

log4net構成に追加<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />すると問題は解決しますが、これによりパフォーマンスが低下するため、本番コードに影響を与えないテスト側のソリューションをお勧めします.

4

1 に答える 1

0

コメントで adrianbanks と Cole W が示唆しているように、ファイルにログを記録する必要はありません。

これで問題は解決しました:

    [SetUp]
    public void Init()
    {
        log4net.Config.BasicConfigurator.Configure(new TraceAppender());
    }
于 2013-10-10T02:47:22.477 に答える