2011-01-05 9 views
2

Ich versuche, NHibernate-Protokollinformationen aus einem Unit-Test-Projekt mit NUnit & ReSharper zu erfassen. Das Testprojekt ist als Klassenbibliothek konfiguriert und verfügt über eine eigene App.Config-Datei. Ich weiß, dass die App.Config-Datei korrekt ist, denn wenn ich sie in einer Konsolenanwendung verwende, sehe ich die gesamte NHibernate-Protokollierung. Wenn diese App.Config-Datei in einem Unit-Test-Projekt platziert wird, funktioniert Log4Net auf mysteriöse Weise nicht mehr.Protokollieren von NHibernate-Informationen aus Unit-Testing-Projekt mit Resharper

Ich habe auch mit der Initialisierung von Log4Net im Testprojekt selbst herumgespielt. Ich habe versucht, [assembly: log4net.Config.XmlConfigurator()] der AssemblyInfo.cs-Datei hinzuzufügen. Ich habe auch versucht, anzurufen ...

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

... in der Testvorrichtung. Nichts funktioniert. Irgendwelche Ideen würden sehr geschätzt werden.

+1

Ihre Frage hat nichts mit Resharper zu tun. Ich nehme an, dass Sie den Resharper-Test-Runner verwenden, aber das verwendet einfach NUnit, um die eigentliche Testausführung durchzuführen. Ich würde empfehlen, das Resharper-Tag und den Namen aus der Frage zu entfernen. Freut mich, dass du herausgefunden hast, was dein Problem war. – NerdFury

Antwort

1

Ich habe es herausgefunden.

Okay, also das erste Problem ist Log4Net wurde stillschweigend fehlgeschlagen, weil das Verzeichnis, unter dem ich unter Win7 schrieb, nicht zugänglich war. Ich änderte das Verzeichnis im Log4Net Appender in nur. \ Nhibernate.log, das es in das Standard-Debug-Verzeichnis schreibt.

<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> 

Außerdem musste ich Log4Net in der Testvorrichtung wie dem folgenden noch initialisieren.

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

Ich verwende einfach log4net.Config.BasicConfigurator.Configure();, die auf der Konsole protokolliert. Keine zusätzliche Konfiguration oder Dateien erforderlich.

Verwandte Themen