Я хотел бы регистрировать некоторую контекстную информацию, когда тесты терпят неудачу (например, снимки экрана). Есть ли в фреймворке NUnit какая-либо точка расширяемости, где я могу это сделать? В идеале это было бы:
[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
выдает NullReferenceException
: (