2016-07-20 42 views
0

我在Log4Net上苦苦挣扎了好一会儿。作为一个例子,我遵循这个post 。不同的是,在我的情况下,我有两个单独的项目,其中一个包含与WebDriver和Web元素交互的所有对象(FrameworkProject),其次是实际测试项目(TestProject)。我已经阅读了很多,我几乎可以肯定我已经正确设置它... FrameworkProject汇编文件包括[assembly: log4net.Config.XmlConfigurator(Watch = true)]运行SpecFlow测试时,Log4Net在Selenium框架中无法正常工作

Log4Net.config文件如下:

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

当调试我SpecFlow测试和我到达线XmlConfigurator.Configure();(看上面的例子),我仍然得到

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

这滴我现在疯了,我不知道什么可能是错误的线索。这可能是运行测试的原因?注:我已经设置了log4netFrameworkProject

回答

1

我已经log4net的设置只在FrameworkProject

这就是问题所在。粗略地说,测试执行期间的“入口点”是测试项目,因此它正在寻找“入口点”应用程序配置文件(测试项目的app.config)内的log4net配置部分。因此,您应该将您的log4net配置移动到测试项目的应用程序配置文件。


在第二次通知,它看起来像你不需要调用XmlConfigurator.Configure,如果你使用汇编级属性:12

+0

好吧,我不知道为什么我只是没有试图做到这一点...无论如何,我按你的建议。我已将log4net部分复制到我的App.config文件中。向配件添加了配置。现在,当我运行它时,什么也没有发生...... – Jakubee

+0

在入口点项目中需要[assembly:...]语句 –

+0

得到了这个工作。必须做更多的搜索...另外,我没有注意到application.log文件实际上是在lib \ debug文件夹中创建的......我将其标记为解决方案,因为它指向了正确的方向。谢谢! – Jakubee

相关问题