我想在测试失败时记录一些上下文信息(如捕获屏幕截图)。 NUnit框架中有可扩展性的地方吗?理想情况下它会是:在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的亚军运行(在我的情况下,它是TestDriven.Net插件VS)和EventListener
成员得到正确调用。问题是,他们都在 TearDown/TestFixtureTearDown方法(我的上下文丢失)之后调用了。
试图在我的TearDown中使用TestContext.CurrentContext.Result
但访问要么State
或Status
属性会NullReferenceException
:(
哦,不,当你有几千个测试时,这不是一个选项。 – UserControl 2012-02-02 09:06:00
您可以告诉我,这是数据驱动的测试,还是您有一千个不同的测试用例。 – 2012-02-02 16:45:35