gpt4 book ai didi

load - NUnit 插件 - 我必须在每个测试项目中包含插件实现吗?

转载 作者:行者123 更新时间:2023-12-04 19:14:59 26 4
gpt4 key购买 nike

我最近在这里发现了一个有用的帖子:NUnit extension

但是我的问题仍然没有得到回答。

首先,什么是'测试组件 ' 反正?

其次,谁能给我一个更详细的解释' NUnit 在每个测试程序集中搜索要加载的插件 '?

例如,我的 VS2010 解决方案中有两个项目,比如说项目 A 和项目 B。A 是一个测试项目(里面包含 '[Test]'),B 是一个 NUnit 插件项目(包含插件安装程序,EventListener 接口(interface)实现,等等),并且,A 引用 B。这行得通吗?插件会被调用吗?

如果不是,我认为这意味着我必须将各种 .cs 文件(实现 NUnit 插件)直接包含在项目 A 中,而不是将它们放入单独的项目中并在测试项目中引用它。你是这个意思吗?

如果是这样,另一个问题是,当我有项目 C、D、E... 也是测试项目时,我必须在每个测试项目中包含那些不同的 .cs 文件(实现 NUnit 插件)?

最佳答案

要运行加载项,必须满足以下两个条件之一:

  • 加载项是一个已编译的 .dll,位于“AddIns”文件夹中。
  • 插件代码与测试在同一个程序集中。

  • 但是,有一种方法可以将大部分插件代码放在不同的程序集中,并在测试程序集中有一个小的 shim 类,它允许 NUnit 找到它,例如:

    在插件程序集中
    public class CustomEventListener : IAddin, EventListener
    {
    public bool Install(IExtensionHost host)
    {
    IExtensionPoint listeners = host.GetExtensionPoint("EventListeners");
    if (listeners == null)
    return false;

    listeners.Install(this);
    return true;
    }

    ........ <Implemented Interfaces> .......

    }

    在测试组装中

    在任何你喜欢的地方添加这个类:
    [NUnitAddin]
    public class MyAddin : CustomEventListener { }

    NUnit 将发现 NUnitAddin属性并调用基础 CustomerEventListener 中的代码代码,即使它在不同的程序集中。

    关于load - NUnit 插件 - 我必须在每个测试项目中包含插件实现吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10680350/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com