我在VS 2015中运行NUnit 3.6并尝试为NUnit创建扩展(Addon),但到目前为止NUnit没有检测到插件,我把它的路径放在.addins文件中,而且每一件事都是{{3说但没有运气。 如果我从控制台运行单元测试,它确实按预期检测到插件 这是代码 :
using NUnit.Engine;
using NUnit.Engine.Extensibility;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Net.WebRequestMethods;
namespace AddOn
{
[Extension]
[TypeExtensionPoint(
Description = "Test addon " )]
public class NUnitMonitor : ITestEventListener
{
public void OnTestEvent(string report)
{
System.IO.File.WriteAllText(@"D:\report.txt", report);
System.Diagnostics.Debug.WriteLine("TEST Report here : ", report);
}
}
}
答案 0 :(得分:1)
代码中的一个错误:扩展点在NUnit 本身中定义为,而不是在代码中定义。它们是可以扩展NUnit的点。因此,TypeExtensionPointAttribute对您的代码没有任何影响,尽管它没有任何损害。
由于您可以在使用控制台运行程序时运行扩展,因此您已正确安装它。但是,在使用NUnit 3测试适配器的Visual Studio下运行时,您没有使用NUnit引擎的副本。相反,您使用的是嵌入在适配器中的私有副本。
虽然它没有文档,但您可以通过在安装引擎的同一目录中创建.addins
文件来获得扩展,并在其中包含扩展位置的路径。如果您通过其nuget包安装适配器,这通常是实用的。
在这种情况下,请执行以下步骤:
.addins
的文件。.addins
文件中添加一行,其中包含扩展程序集的路径。