2008-10-01 12 views
5

Ich verwende NUnit mit dem Projekt AssemblyTest.nunit. Der Test ruft eine andere Assembly auf, die die log4net-Assembly verwendet. Dies verwendet Nunit Version 2.4.3 mit dem .net 2.0 Framework.log4net Konfigurationsabschnitt für NUnit Test Projekt

In TestFixtureSetup Ich rufe log4net.Config.XmlConfigurator.Configure() und ich die folgende Fehlermeldung erhalten:

 
System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> System.Configuration.ConfigurationErrorsException: Unrecognized configuration section log4net. (C:\path\to\assembly.dll.config line 7) 

Gibt es eine Möglichkeit, dies zu beheben, ohne die Konfigurationsdatei ‚AssemblyTest.config‘ umbenennen ?

+0

Ich bin nicht vertraut mit .NET, aber es gibt nichts in dem Fehler, der zumindest für mich bedeutet, dass dies etwas mit dem Namen der Konfigurationsdatei zu tun hat. Es sieht für mich eher aus wie es ein Problem mit der Zeile 7 in Ihrer Konfigurationsdatei gibt. – TomC

+0

Ja, deshalb habe ich die Frage gestellt. Die Konfigurationsdateizeile arbeitet mit der Datei, die durch den Namen des Nunit-Projekts und genau dem gleichen Text benannt ist. Danke für den Punkt. –

Antwort

4

Erstellen Sie eine separate Konfigurationsdatei für log4net mit dem Root-Element log4net.

In TestFixtureSetup erstellen Sie ein FileInfo-Objekt für diese Konfigurationsdatei und geben Sie es als Argument an log4net.Config.XmlConfigurator.Configure().

10

Ich hatte das gleiche Problem, weil ich die log4net Definition in den configSections Element hinzuzufügen vergessen.

Also, wenn Sie log4net -Elemente in die app.config setzen wollen, müssen Sie die configSections Element enthalten (die in dem log4net sagt -Elemente definiert sind) an der Spitze der Konfigurationsdatei .

Probieren Sie es wie folgt aus:

<configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" /> 
    </configSections> 
    <log4net> 
    ... 
    </log4net> 
</configuration> 
+0

Ich hatte dieses Problem auch mit dem Visual Studio Testsystem –

5

Ich weiß nicht, warum Sie Jungs in Konfigurationsdateien gefangen sind, für nunit wenn Sie Protokolle wie Laufen in nunit Testläufer alles, was Sie im Textausgabefenster sehen müssen folgende Codezeile wird zu tun,

BasicConfigurator.Configure(); 

beste Punkt diese Zeile hinzufügen, ist der Konstruktor der Klasse Test

zB

+0

Kurz und perfekt! – ShloEmi

+0

Dadurch wurden alle meine Protokollanweisungen im Komponententest in Ausgabe umgewandelt und es war nicht erforderlich, die tatsächlich verwendete Anwendung noch einmal zu wiederholen. +1 für keine Konfigurationsdatei! Perfekt! – K0D4

Verwandte Themen