NUnit可扩展性——获取故障消息

本文关键字:消息 故障 获取 NUnit 可扩展性 | 更新日期: 2023-09-27 17:50:38

我一直在寻找一段时间在NUnit中获得错误消息的方法。到目前为止,我发现了一些使用IAddin和EventListener来获取消息的类,但它不起作用。我基于以下链接编写了这段代码:

对扩展

源代码

Extensability

我将代码添加到项目中,但没有记录任何内容,或者在测试失败时执行任何操作。我读到我必须将dll添加到一些"NUnit'addins'"文件夹中,但我找不到任何带有此"addins"的插件文件夹。

我不知道我错过了什么,有人能帮帮我吗?

下面是我使用的代码:
using System;
using System.IO;
using NUnit.Core;
using NUnit.Core.Extensibility;
namespace Test
{
    [NUnitAddinAttribute(Type = ExtensionType.Core,
                         Name = "Database Addin",
                         Description = "Writes test results to the database.")]
    public class MyNunitExtension : IAddin, EventListener
    {
        public bool Install(IExtensionHost host)
        {
            IExtensionPoint listeners = host.GetExtensionPoint("EventListeners");
            if (listeners == null)
                return false;
        listeners.Install(this);
        return true;
    }
    public void RunStarted(string name, int testCount) { }
    public void RunFinished(TestResult result) { }
    public void RunFinished(Exception exception) { }
    public void TestStarted(TestName testName) { }
    public void TestFinished(TestResult result)
    {
        using (var arq = File.Open(@"C:'Temp'Log.txt", FileMode.Append))
        using (var writer = new StreamWriter(arq))
        {
            var message = string.Format("[{0:s}] [{1}] {2}", DateTime.Now,
                result.ResultState, result.Name);
            writer.WriteLine(message);
            var isFailure =
                result.ResultState == ResultState.Error ||
                result.ResultState == ResultState.Failure;
            if (isFailure)
            {
                writer.WriteLine(result.Message);
            }
        }
    }
    public void SuiteStarted(TestName testName) { }
    public void SuiteFinished(TestResult result) { }
    public void UnhandledException(Exception exception) { }
    public void TestOutput(TestOutput testOutput) { }
}
}

NUnit可扩展性——获取故障消息

希望这能对你有所帮助。

我目前也在寻找Nunit的添加,并建议您检查以下内容:你得到的外接文件的解决方案需要在。net 3.5的目标框架下安装(见这里的讨论:https://groups.google.com/d/msg/nunit-discuss/je0VXIsVQNQ/UpvDmYEkVhAJ)。当您构建此解决方案时,将它从bin文件夹创建的.dll放入nunit的addins目录中,该目录可以在安装目录中找到,在我的情况下(C:'Program Files (x86)'NUnit 2.6.4'bin'addins)。

打开Nunit,点击工具>插件,就可以看到插件了