Frage

Ich bin mit NUnit mit dem Projekt mit dem Namen AssemblyTest.nunit. Der Test ruft eine andere Anordnung, die die log4net Assembly verwendet. Dies ist mit nunit Version 2.4.3 mit den .NET 2.0 Framework.

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

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‘ zu umbenennen?

War es hilfreich?

Lösung

Erstellen Sie eine separate Konfigurationsdatei für log4net mit Wurzelelement log4net.

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

Andere Tipps

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

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

Versuchen Sie es wie folgt aus:

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

Ich weiß nicht, warum Sie Jungs in Konfigurationsdateien gefangen sind, für nunit wenn Sie Protokolle gerne sehen, in Textausgabefenster in nunit Test Runner läuft alles, was Sie tun müssen, ist folgende Zeile Code,

BasicConfigurator.Configure();

Bestpunkt diese Zeile hinzufügen, ist der Konstruktor der Klasse Test

z.

[TestFixture]
    public class MyTest
    {
        log4net.ILog log = log4net.LogManager.GetLogger(typeof(MyTest));

        public MyTest()
        {
            BasicConfigurator.Configure();
        }

        [SetUp]
        public void SetUp()
        {
           log.Debug(">SetUp");               
        }

        [TearDown]
        public void TearDown()
        {
            log.Debug(">TearDown");
        }

        [Test]
        public void TestNothing()
        {
            log.Debug(">TestNothing");
        }
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top