【发布时间】:2016-08-23 13:26:11
【问题描述】:
所以我做了一些环顾四周。我发现的大多数线程似乎都与希望在实际测试中运行 log4net 的人有关。这意味着他们想要在他们的测试类中记录条目。我不想要我的实际测试中的日志条目。但我确实想要我正在测试的代码中的预期日志条目。这是我第一次使用 Log4net。如果我自己运行代码,则日志条目将起作用。如果我运行测试,则没有日志条目。我猜它没有正确初始化,或者我的 UnitTest 中可能没有正确设置 log4net(可能在 appconfig 或程序集中??)。这是一个 MVC 5 应用程序。这是一个基本示例。
Nunit 测试(基础):
namespace MyUnitTests
[TestFixture]
public class MyTestClass
{
[Test]
public void MyTest
{
//arrange
var testVar = @"string";
//act
MyProjectClass.Method(testVar);
//assert something
}
}
在 MyProject 中我有(基础):
public class MyProjectClass : Controller
{
private static readonly log4net.ILog log = log4net.LogManager.GetLogger(typeof(MyProjectClass));
public static void Method(string myString)
{
//does whatever
log("added value");
}
所以我显然已经简化了这个讨论。但是当我运行我的实际测试时,我的测试通过了,值和结果都是应该的。我只是从未在日志中看到我刚刚测试过的方法的日志条目。我确定我错过了一些简单的东西。任何帮助将不胜感激。谢谢!
【问题讨论】:
标签: c# asp.net-mvc tdd log4net