Как избежать проблем с покрытием кода с помощью Common.Logging и отложенного выполнения? - PullRequest
0 голосов
/ 24 февраля 2019

Мы используем Common.Logging в качестве нашей инфраструктуры регистрации, типичный класс будет выглядеть следующим образом:

using Common.Logging;
[...]
public MyClass
{
  private static readonly ILog Logger = LogManager.GetLogger<MyClass>();
  [...]
  public void MyMethod()
  {
    Logger.Debug(l => l("MyMethod started"));
    [...]
  }
  [...]
}

Мы вызываем методы классов в нашем модульном тесте, однако при проверке покрытия кода мыВы получите все Logger.Debug(l => l(..., помеченные как имеющие отсутствующее покрытие, это потому, что код внутри Debug никогда не выполняется, так как предполагается, что он запускается только тогда, когда уровень ведения журнала установлен на соответствующем уровне, в данном случае Debug.

Есть ли способ избежать этой маркировки покрытия?Или игнорировать все отложенные вызовы журналирования или принудительно вести журналирование на самом низком уровне при выполнении модульных тестов?

...