运行SpecFlow测试时,Log4Net无法在Selenium Framework中运行

时间:2016-07-20 16:11:43

标签: c# selenium logging log4net

我现在正忙着与Log4Net挣扎。我跟着这个post 举个例子。不同的是,在我的例子中,我有两个独立的项目,一个是所有与WebDriver和web元素交互的对象(FrameworkProject),第二个是实际测试项目(TestProject)。我已经阅读了很多,我几乎可以肯定我已经正确设置了... FrameworkProject程序集文件包含[assembly: log4net.Config.XmlConfigurator(Watch = true)]

我的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. 

这让我很生气,我不知道可能出现什么问题。这可能是运行测试的原因??注意:我只在log4net

中设置FrameworkProject

1 个答案:

答案 0 :(得分:1)

  

我只在FrameworkProject中设置了log4net

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

如果您使用汇编级别属性12,则第二次通知您似乎不需要致电XmlConfigurator.Configure