NUnit 测试项目的 log4net 配置部分

发布于 2024-07-07 15:36:40 字数 502 浏览 8 评论 0原文

我正在使用名为 AssemblyTest.nunit 的项目运行 NUnit。 该测试调用另一个使用 log4net 程序集的程序集。 这是使用 nunit 版本 2.4.3 和 .net 2.0 框架。

在 TestFixtureSetup 中,我调用 log4net.Config.XmlConfigurator.Configure( ) 并收到以下错误:

System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> System.Configuration.ConfigurationErrorsException: Unrecognized configuration section log4net. (C:\path\to\assembly.dll.config line 7)

有没有办法解决此问题而不将配置文件重命名为“AssemblyTest.config”?

I am running NUnit with the project named AssemblyTest.nunit. The test calls another assembly which uses the log4net assembly. This is using nunit version 2.4.3 with the .net 2.0 framework.

In TestFixtureSetup I am calling log4net.Config.XmlConfigurator.Configure( ) and am getting the following error:

System.Configuration.ConfigurationErrorsException: Configuration system failed to initialize ---> System.Configuration.ConfigurationErrorsException: Unrecognized configuration section log4net. (C:\path\to\assembly.dll.config line 7)

Is there a way to fix this without renaming the config file to 'AssemblyTest.config'?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

海拔太高太耀眼 2024-07-14 15:36:40

我遇到了同样的问题,因为我忘记在 configSections 元素中添加 log4net 定义。

因此,如果您想将 log4net 元素放入 app.config 中,则需要包含 configSections 元素(它告诉 log4net- 的位置)元素被定义)在配置文件的顶部。

试试这样:

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

I had the same problem because I forget to add the log4net definition in the configSections element.

So, if you want to put log4net-elements into the app.config, you need to include the configSections element (which tells where log4net-elements are defined) at the top of the config file.

Try it like this:

<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
  ...
  </log4net>
</configuration>
寄居者 2024-07-14 15:36:40

我不知道为什么你们被困在配置文件中,对于 nunit 如果您想在 nunit 测试运行程序的文本输出窗口中看到运行的日志,您需要做的就是跟随代码行,

BasicConfigurator.Configure();

最好添加这一行是构造函数测试类

例如

[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");
        }
    }

I don't know why you guys are trapped in config files, for nunit if you like to see logs running in Text Output window in nunit test runner all you need to do is following line of code,

BasicConfigurator.Configure();

best point add this line is the constructor of Test class

e.g.

[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");
        }
    }
嗳卜坏 2024-07-14 15:36:40

使用根元素 log4net 为 log4net 创建一个单独的配置文件。

在 TestFixtureSetup 中,为此配置文件创建一个 FileInfo 对象,并将其作为 log4net.Config.XmlConfigurator.Configure( ) 的参数。

Create a separate config file for log4net with root element log4net.

In TestFixtureSetup create a FileInfo object for this config file and give it as argument to log4net.Config.XmlConfigurator.Configure( ).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文