我想在测试失败时记录一些上下文信息(例如捕获屏幕截图)。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
是我所有 UI 测试的基类。Install()
方法只是没有被调用。任何提示将不胜感激。
更新:要注册的加载项测试必须使用 NUnit 运行程序运行(在我的情况下,它是VS 的TestDriven.Net插件)并且EventListener
成员被正确调用。问题是它们都在 TearDown/TestFixtureTearDown 方法之后调用(我的上下文丢失了)。
试图TestContext.CurrentContext.Result
在我的 TearDown 中使用,但访问其中一个State
或Status
属性抛出NullReferenceException
:(