Сделать журнал NLog даже при тестировании с UnitTests c # - PullRequest
0 голосов
/ 10 октября 2018

Как видно из заголовка, я хочу, чтобы мой Logger не игнорировался при запуске модульных тестов с использованием XUnit.Я хочу, чтобы это все еще регистрировалось.Если это возможно, как это можно сделать?

Вот мой конфиг

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <targets>
    <target name="log"
       xsi:type="File"
       fileName="${basedir}/logs/log.${longdate:cached=true}.log"
       layout="${message}"
       archiveFileName="${basedir}/logs/archives/log.${shortdate}.{#}.log"
       archiveAboveSize="5242880"
       archiveEvery="Day"
       archiveNumbering = "Rolling"
       maxArchiveFiles="20"
     />
    <target name="logconsole" xsi:type="Console" />
  </targets>

  <rules>
    <logger name="*" minlevel="Info" writeTo="logconsole" />
    <logger name="*" minlevel="trace" writeTo="log" />
  </rules>
</nlog>

У меня просто есть бэкэнд и нет внешнего интерфейсапоэтому, когда я запускаю тесты, я хочу видеть, что все записывается:)

1 Ответ

0 голосов
/ 10 октября 2018

Вы можете использовать NLog в модульных тестах.К сожалению, для NLog трудно найти путь к nlog.config, поскольку платформы модульного тестирования перемещают двоичные файлы между папками, а не nlog.config.

Кроме того, он отличается в разных средах / средах (NUnit, xUnit, MSTest, .NET full, .NET Core)

Вы можете сделать:

  • НаписатьКонфигурация в C #.См. Документы
  • Или укажите NLog путь к конфигурации:

    LogManager.Configuration = new XmlLoggingConfiguration("pathToNLogConfig/nlog.config");
    

Также рекомендуется для входа в модульные тесты написатьк цели памяти вместо файла / базы данных и т. д. Вы также можете получить в коде зарегистрированные события.См. целевые документы по памяти

...