在VS2015中运行NUnit扩展(插件)时,NUnit测试未检测到它

在VS2015中运行NUnit扩展(插件)时,NUnit测试未检测到它,nunit,nunit-3.0,nunit-console,Nunit,Nunit 3.0,Nunit Console,我正在VS 2015中运行NUnit 3.6,并试图为NUnit创建extenstion插件,但到目前为止,NUnit没有检测到该插件,我将其路径放在了.addins文件中,每件事都在说,但没有运气。 如果我从控制台运行单元测试,它会按预期检测到插件 这是密码 : 代码中有一个错误:扩展点是在NUnit本身中定义的,而不是在代码中定义的。它们是NUnit可以扩展的地方。因此,TypeExtensionPointAttribute在代码中没有任何作用,尽管它不会损害任何东西 由于您可以在使用con

我正在VS 2015中运行NUnit 3.6,并试图为NUnit创建extenstion插件,但到目前为止,NUnit没有检测到该插件,我将其路径放在了.addins文件中,每件事都在说,但没有运气。 如果我从控制台运行单元测试,它会按预期检测到插件 这是密码 :


代码中有一个错误:扩展点是在NUnit本身中定义的,而不是在代码中定义的。它们是NUnit可以扩展的地方。因此,TypeExtensionPointAttribute在代码中没有任何作用,尽管它不会损害任何东西

由于您可以在使用console runner时运行扩展,因此您已经在那里正确安装了它。但是,当使用NUnit 3测试适配器在Visual Studio下运行时,您不会使用NUnit引擎的副本。相反,您使用的是嵌入在适配器本身中的私有副本

尽管它没有文档记录,但您可以通过在安装引擎的同一目录中创建.addins文件来运行扩展名,其中包含指向扩展名位置的路径。这通常仅在通过其nuget包安装适配器时才实用

在这种情况下,请采取以下步骤:

将外接程序复制到项目目录中方便的位置。 在nuget安装引擎程序集的同一目录中创建扩展名为.addins的文件。 在.addins文件中添加一行,其中包含扩展程序集的路径。
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);

        }
    }
}