我想添加一個自定義測試記者到NUnit。我已經用NUnit2做了,但我現在需要使用NUnit3。如何在NUnit 3中使用ITestEventListener?
爲了實現記者,我需要從框架中獲取各種事件,例如測試的開始,結束和失敗。
在NUnit2我用NUnitHook註冊我EventListner和它的工作相當不錯。
在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);
}
}
我做錯了什麼?有沒有更好的方法來實現它?
我糾正我的答案,以反映用戶代碼使用錯誤的屬性的事實。 – Charlie
謝謝,我已經成功地編寫了插件。現在問題是我需要它也從VS運行,我的理解是,它尚未支持。我期待着這項改進。 –
通過使用NuGet安裝並在軟件包目錄中創建一個.addins文件,並在其中包含正確的相對路徑,可以使其在本地計算機上工作。但是它不能自動運行包恢復,這在很多環境中都是如此。除此之外,它必須等到適配器使用標準的引擎包,而不是現在的引擎的自定義副本。 – Charlie