我想要向NUnit添加一个自定义测试报告器。我已经在NUnit2中完成了这个任务,但现在我需要使用NUnit3。
为了实现报告器,我需要从框架中获取各种事件,如测试的开始、结束和失败等。
在NUnit2中,我使用了“NUnitHook”来注册我的“EventListener”,并且它的效果非常好。
在NUnit3中,我需要使用“扩展点机制”,但是当我将扩展点添加到项目中时,VisualStudio(2012 ultimate)立即无法发现NUnit测试。
为了实现报告器,我需要从框架中获取各种事件,如测试的开始、结束和失败等。
在NUnit2中,我使用了“NUnitHook”来注册我的“EventListener”,并且它的效果非常好。
在NUnit3中,我需要使用“扩展点机制”,但是当我将扩展点添加到项目中时,VisualStudio(2012 ultimate)立即无法发现NUnit测试。
[TypeExtensionPoint(Description = "Test Reporter Extension")]
public class MyTestEventListener : ITestEventListener
{
public void OnTestEvent(string report)
{
Console.WriteLine(report);
}
}
如果我从这个类中删除ITestEventListener的实现声明,它会完美地重新发现测试。
[TypeExtensionPoint(Description = "Test Reporter Extension")]
public class MyTestEventListener //: ITestEventListener
{
public void OnTestEvent(string report)
{
Console.WriteLine(report);
}
}
我做错了什么吗?有更好的方法来实现它吗?
Extension
属性在NUnit.Engine.Api
NuGet 中定义。 - Dejan