Так что я немного осмотрелся. Большинство потоков, которые я нахожу, относятся к людям, которые хотят запустить log4net в своих реальных тестах. Это означает, что они хотят записывать записи в свой тестовый класс. Мне не нужны записи журнала из моих фактических тестов. Но мне нужны ожидаемые записи журнала из кода, который я тестирую. Это мой первый раз, когда я использую Log4net. Если я запускаю собственный код, записи журнала работают. Если я запускаю тест, никаких записей в журнале нет. Я предполагаю, что он не инициализирован должным образом или, возможно, у меня нет правильной настройки log4net в моем UnitTest (возможно, в appconfig или сборке?). Это приложение MVC 5. Вот пример.Log4net не работает с тестами NUnit
Nunit Test (основы):
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 в своем UnitTest. Это все еще не сработало. – Puerto
Я не делал Ассамблеи, хотя. // logger [сборка: log4net.Config.XmlConfigurator (ConfigFile = "Web.config", Watch = true)]. Позвольте мне попытаться добавить это также к моему проекту UnitTest. – Puerto
Убедитесь, что у вас есть ссылка на сборку log4net из проекта UnitTest. –