История: nUnit 3. У меня есть тесты со сложным наследованием. Определенный объект создается в пределах SetUp
или OneTimeSetUp
. Эти методы являются виртуальными. Когда этот объект не закрыт, происходит утечка.
Проблема: объект уничтожается в TearDown
или OneTimeTearDown
, но они вызываются только при успешном выполнении SetUp
или OneTimeSetUp
. Поэтому, когда где-то в пределах TearDown
или OneTimeTearDown
возникает исключение, происходит утечка. Как я уже упоминал, существует несколько уровней наследования, поэтому создание исключений и критических объектов может происходить в разных классах, в разных кадрах стека.
Что я хочу сделать: я хочу, чтобы ITestEventListener
реагировала на сбой до завершения инициализации и очищала критический объект.
Что я пробовал: в своей тестовой сборке я создал класс:
namespace My.Whatever.Tests.Web.Util
{
[Extension(EngineVersion = "3.4")]
public class NunitEventListener : ITestEventListener
{
public void OnTestEvent(string report)
{
Debug.WriteLine(report);
}
}
}
Затем я попытался запустить тесты через
- VS (тестовый адаптер nunit 3)
- консоль nUnit
Кажется, никто не загружает расширение.
Вопрос: что я делаю не так?
Источники информации: https://github.com/nunit/docs/wiki/Event-Listeners , https://github.com/nunit/docs/wiki/Writing-Engine-Extensions