Я хотел бы зарегистрировать некоторую контекстную информацию, когда тесты не пройдены (например, снимки экрана). Есть ли в NUnit Framework возможность расширения, где я могу это сделать? В идеале это будет:
[TearDown]
public void Down(AssertionException ex) {}
но у нас его нет. Я пытался создать надстройку, но не знаю, как ее зарегистрировать во время выполнения:
[NUnitAddin]
public class UITestCase : TestCaseBase, NUnit.Core.EventListener, NUnit.Core.Extensibility.IAddin {
.............
public void UnhandledException(Exception exception){}
public bool Install(NUnit.Core.Extensibility.IExtensionHost host) {
IExtensionPoint listeners = host.GetExtensionPoint("EventListeners");
listeners.Install(this);
return true;
}
}
UITestCase
- мой базовый класс для всех тестов пользовательского интерфейса. Install()
метод просто не вызывается. Любые советы будут оценены.
Обновление: для регистрации надстройки необходимо запустить с NUnit runner (в моем случае это был TestDriven.Net плагин для VS) и EventListener
члены правильно называются. Проблема в том, что все они вызывали после методов TearDown / TestFixtureTearDown (мой контекст потерян).
Пытался использовать TestContext.CurrentContext.Result
в моем TearDown, но получил доступ к State
или Status
throws свойства NullReferenceException
: (