.net NUnit测试项目的log4net配置部分
我正在使用名为AssemblyTest.NUnit的项目运行NUnit。该测试调用另一个使用log4net程序集的程序集。这是使用nunit版本2.4.3和.NET2.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) System.Configuration.ConfigurationErrorsException:配置系统未能初始化-->System.Configuration.ConfigurationErrorsException:无法识别的配置部分log4net。(C:\path\to\assembly.dll.config第7行).net NUnit测试项目的log4net配置部分,.net,configuration,nunit,log4net,.net,Configuration,Nunit,Log4net,我正在使用名为AssemblyTest.NUnit的项目运行NUnit。该测试调用另一个使用log4net程序集的程序集。这是使用nunit版本2.4.3和.NET2.0框架 在TestFixtureSetup中,我调用log4net.Config.XmlConfigurator.Configure()并得到以下错误: System.Configuration.ConfigurationErrorsException: Configuration system failed to initial
有没有办法在不将配置文件重命名为“AssemblyTest.config”的情况下修复此问题?使用根元素log4net为log4net创建单独的配置文件
在TestFixtureSetup中,为该配置文件创建一个FileInfo对象,并将其作为log4net.config.XmlConfigurator.Configure()的参数提供。我遇到了相同的问题,因为我忘记了在configSections元素中添加log4net定义 因此,如果要将log4net元素放入app.config中,则需要在配置文件的顶部包含configSections元素(它告诉log4net元素的定义位置) 试着这样做:
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
...
</log4net>
</configuration>
...
我不知道你们为什么会被困在配置文件中,对于nunit来说,若你们想在nunit测试运行程序的文本输出窗口中看到日志,你们只需要执行下面的代码行
BasicConfigurator.Configure();
最佳点添加此行是测试类的构造函数
e、 g
我不熟悉.NET,但错误中没有任何东西对我意味着至少这与配置文件的名称有关。在我看来,配置文件中的第7行似乎有问题。是的,这就是我问这个问题的原因。配置文件行使用nunit项目名称命名的文件和完全相同的文本。谢谢你的观点。我在VisualStudio测试系统中也遇到了这个问题。它将我所有的日志语句转换为单元测试中的输出,并且不需要重做应用程序实际使用的任何内容+1表示没有配置文件!完美的
[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");
}
}