当我在VS2015中运行时,NUnit测试没有检测到我的NUnit扩展(Addon)

时间:2017-01-29 03:29:52

标签: nunit nunit-3.0 nunit-console

我在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);

        }
    }
}

1 个答案:

答案 0 :(得分:1)

代码中的一个错误:扩展点在NUnit 本身中定义为,而不是在代码中定义。它们是可以扩展NUnit的点。因此,TypeExtensionPointAttribute对您的代码没有任何影响,尽管它没有任何损害。

由于您可以在使用控制台运行程序时运行扩展,因此您已正确安装它。但是,在使用NUnit 3测试适配器的Visual Studio下运行时,您没有使用NUnit引擎的副本。相反,您使用的是嵌入在适配器中的私有副本。

虽然它没有文档,但您可以通过在安装引擎的同一目录中创建.addins文件来获得扩展,并在其中包含扩展位置的路径。如果您通过其nuget包安装适配器,这通常是实用的。

在这种情况下,请执行以下步骤:

  1. 将您的插件复制到项目目录中的方便位置。
  2. 在nuget安装引擎程序集的同一目录中创建扩展名为.addins的文件。
  3. .addins文件中添加一行,其中包含扩展程序集的路径。