gpt4 book ai didi

c# - log4net 和 nunit 测试,最基本的例子

转载 作者:太空狗 更新时间:2023-10-29 17:28:48 24 4
gpt4 key购买 nike

我想尝试从我的应用中记录一些应用消息。在这种情况下,我只想强制 nunit 使用 log4net。我在这里找到了一些例子 http://www.ofconsulting.com/PublicPortal/ofc-tech-blog/92-configure-log4net-with-nunit.html .

log4net 在 app.config 中配置如下:

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

<log4net>
<root>
<level value="DEBUG" />
<appender-ref ref="LogFileAppender" />
</root>
<appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender" >
<param name="File" value="log.txt" />
<param name="AppendToFile" value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%-5p%d{yyyy-MM-dd hh:mm:ss} – %m%n" />
</layout>
</appender>
</log4net>

我的测试代码如下

[TestFixture]
class DomainTests
{
protected static readonly ILog log = LogManager.GetLogger(typeof(DomainTests));
public void LoggingTests()
{
log4net.Config.XmlConfigurator.Configure();
}

[Test]
public void BasicLogTest()
{
log.Error("write my log entry already");
}

我的测试通过了,但 log.txt 文件中没有任何内容。我做错了什么?
我只是想让它尽可能简单地存储消息,比如进入应用程序、退出应用程序。问候。

最佳答案

问题是 NUnit 测试运行器(当从 visual studio 中的 resharper 运行时)从另一个文件夹运行测试(它影子复制测试程序集),因此 xml 配置此时不可用,除非您指定完整的配置路径。

您当然可以使用基本配置并在代码中指定日志记录配置,例如:

log4net.Config.BasicConfigurator.Configure(
new log4net.Appender.ConsoleAppender {
Layout = new log4net.Layout.SimpleLayout()});

之后您应该在测试输出中看到日志输出。

关于c# - log4net 和 nunit 测试,最基本的例子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11041502/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com