2016-07-20 9 views
0

Tests ich mit Log4Net für ein gutes bin zu kämpfen jetzt, während. Ich habe dieses post als ein Beispiel gefolgt. Der Unterschied ist, in meinem Fall, ich habe zwei separate Projekte, eines mit allen Objekten, die mit WebDriver und Web-Elementen (FrameworkProject) in Wechselwirkung treten, ist an zweiter Stelle tatsächliches Testprojekt (Testproject). Ich habe viel gelesen, und ich bin fast sicher, dass ich es richtig ... FrameworkProject Baugruppendatei gesetzt haben umfasst [assembly: log4net.Config.XmlConfigurator(Watch = true)]Log4Net nicht in Selen-Framework arbeiten, wenn Laufen SpecFlow

Meine Log4Net.config Datei wie folgt lautet:

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

    <log4net> 
    <root> 
     <level value="ALL" /> 
     <appender-ref ref="MyAppender" /> 
     <appender-ref ref="MyFileAppender" /> 
    </root> 
    <appender name="MyAppender" type="log4net.Appender.ConsoleAppender"> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date %level %logger - %message%newline" /> 
     </layout> 
    </appender> 
    <appender name="MyFileAppender" type="log4net.Appender.FileAppender"> 
     <file value="application.log" /> 
     <appendToFile value="true" /> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date %level %logger - %message%newline" /> 
     </layout> 
    </appender> 
    </log4net> 
    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 

</configuration> 

Wenn ich meine SpecFlow Tests debuggen und ich erreiche die Linie XmlConfigurator.Configure(); (schauen Beispiel oben) ich bin immer noch

log4net:ERROR Failed to find configuration section 'log4net' in the application's. 

Dies fällt mir jetzt verrückt, und ich habe keine Ahnung von dem, was falsch sein könnte. Könnte dies die Ursache für den Lauftest sein ?? Hinweis: Ich habe log4net einrichten NUR in FrameworkProject

Antwort

1

Ich habe Log4Net einrichten NUR in FrameworkProject

das ist das Problem. Grob gesagt, Ihr „Einstiegspunkt“ während der Testausführung ist Ihr Testprojekt, daher ist es die Suche nach log4net Konfigurationsabschnitt innerhalb der „Einstiegspunktes des“ Anwendungskonfigurationsdatei (Test Project app.config). Daher sollten Sie Ihre log4net Konfiguration in die Anwendungskonfigurationsdatei von Test Project verschieben.


Auf einer zweiten Mitteilung, es sieht aus wie Sie benötigen, um XmlConfigurator.Configure nicht aufrufen, wenn Sie Baugruppenebene Attribut verwenden: 1, 2.

+0

Ok, ich habe keine Ahnung, warum ich es einfach nicht versucht zu tun, viel früher ... Wie auch immer, ich tat, wie Sie vorgeschlagen. Ich habe den log4net-Abschnitt in meine App.config-Datei kopiert. Eine Konfiguration zur Assembly hinzugefügt. Nun, wenn ich es laufe nichts passiert ... – Jakubee

+0

Die [assembly: ...] Anweisung benötigt wird, um in dem Entry-Punkt Projekt –

+0

diese Arbeit erhält. Ich musste etwas mehr googeln ... auch, dass ich nicht bemerkte, dass die application.log-Datei tatsächlich im lib \ debug-Ordner erstellt wurde ... Ich markierte dies als Lösung, da sie mich in die richtige Richtung wies. Vielen Dank! – Jakubee