Cod*_*tes 5 .net configuration log4net nunit
我正在使用名为AssemblyTest.nunit的项目运行NUnit.该测试调用另一个使用log4net程序集的程序集.这是使用带有.net 2.0框架的nunit版本2.4.3.
在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'?
Chr*_*ann 10
我遇到了同样的问题,因为我忘了在configSections元素中添加log4net定义.
因此,如果要将log4net -elements放入app.config,则需要在配置文件的顶部包含configSections元素(告诉log4net -elements的定义位置).
试试这样:
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<log4net>
...
</log4net>
</configuration>
Run Code Online (Sandbox Code Playgroud)
我不知道为什么你们被困在配置文件中,对于nunit如果你想在nunit test runner的Text Output窗口中看到运行的日志,你需要做的就是遵循代码行,
BasicConfigurator.Configure();
Run Code Online (Sandbox Code Playgroud)
最佳点添加此行是Test类的构造函数
例如
[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");
}
}
Run Code Online (Sandbox Code Playgroud)
使用根元素 log4net 为 log4net 创建一个单独的配置文件。
在 TestFixtureSetup 中,为此配置文件创建一个 FileInfo 对象,并将其作为 log4net.Config.XmlConfigurator.Configure( ) 的参数。
归档时间: |
|
查看次数: |
8874 次 |
最近记录: |