所以我已經做了一些四處尋找。我發現的大多數線程似乎都與想要在其實際測試中運行log4net的人有關。這意味着他們想要在他們的測試類中記錄日誌條目我不想從我的實際測試中記錄日誌條目。但我確實希望從我測試的代碼中獲得預期的日誌條目。這是我第一次使用Log4net。如果我自己運行代碼,那麼日誌條目就可以工作。如果我運行一個測試,儘管沒有日誌條目。我猜它沒有正確初始化,或者我沒有在我的UnitTest中正確安裝log4net(在appconfig或程序集中)。這是一個MVC 5應用程序。這是一個基本的例子。Log4net不能使用NUnit測試
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");
}
所以,我已經很明顯簡化了這一討論開始。但是當我運行我的實際測試時,我的測試通過了,價值和結果都是他們應該做的。我從未在日誌中看到我剛剛測試的方法的日誌條目。我確定我錯過了一些簡單的事情。任何幫助將不勝感激。謝謝!
那麼嘗試添加了我必須在WebConfig到我的AppConfig在我的單元測試。它仍然沒有工作。 – Puerto
雖然我沒有參加大會。 // logger [程序集:log4net.Config.XmlConfigurator(ConfigFile =「Web.config」,Watch = true)]。讓我嘗試添加,以及我的UnitTest項目。 – Puerto
確保您也有對UnitTest項目中的log4net程序集的引用。 –