【问题标题】:Log4Net not working in Selenium Framework when Running SpecFlow Tests运行 SpecFlow 测试时,Log4Net 在 Selenium 框架中不起作用
【发布时间】:2016-07-20 16:11:42
【问题描述】:

我在 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(); 行(请看上面的示例)时,我仍然得到 ​​p>

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

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

【问题讨论】:

    标签: c# selenium logging log4net


    【解决方案1】:

    我只在 FrameworkProject 中设置了 log4net

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


    再次通知,如果您使用程序集级属性:12,您似乎不需要调用XmlConfigurator.Configure

    【讨论】:

    • 好吧,我不知道为什么我没有早点尝试这样做......无论如何,我按照你的建议做了。我已将 log4net 部分复制到我的 App.config 文件中。向程序集添加了配置。现在,当我运行它时,什么也没有发生......
    • 入口项目中需要[assembly:...]语句
    • 得到这个工作。不得不做更多的谷歌搜索......而且,我没有注意到实际上在 lib\debug 文件夹中创建的 application.log 文件......我将其标记为解决方案,因为它为我指明了正确的方向。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    相关资源
    最近更新 更多