【发布时间】:2012-02-01 22:06:14
【问题描述】:
我想在测试失败时记录一些上下文信息(例如捕获屏幕截图)。 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 方法(我的上下文丢失了)。
尝试在我的 TearDown 中使用 TestContext.CurrentContext.Result,但访问 State 或 Status 属性会抛出 NullReferenceException :(
【问题讨论】:
标签: .net testing nunit automated-tests nunit-2.5