c# - 从 Nunit 获取失败测试列表

标签 c# unit-testing nunit

我有一个包含超过 8000 个测试的测试套件,并且很难看出哪些测试在代码更改之间中断(这些测试用例是从某些日志文件中自动提取的查询)。

是否有一种简单的方法来获取 NUnit 运行的失败测试列表?理想情况下,我想比较运行期间哪些测试受到影响。

最佳答案

您可以实现“NUnit.Core.Extensibility.IAddin”和“NUnit.Core.EventListener”。因此您可以操纵测试结果。 NUnit(2.5 或更高版本)将自动加载实现“IAddin”方法的类。

像这样:

using System;
using System.Text;
using NUnit.Core.Extensibility;
using NUnit.Core;

namespace YourNUnitAddIns
{
    /// <summary>
    /// Coleta informacoes da execucao do NUnit.
    /// </summary>
    [NUnitAddin(
        Name="CollectNUnitFailAddIn",
        Description="do something",
        Type=ExtensionType.Core)]
    public class CollectNUnitFailAddIn : IAddin, EventListener
    {
        #region IAddin Members

        public bool Install(IExtensionHost host)
        {    
            IExtensionPoint suiteBuilders = host.GetExtensionPoint("SuiteBuilders");
            IExtensionPoint testBuilders = host.GetExtensionPoint("TestCaseBuilders");
            IExtensionPoint events = host.GetExtensionPoint("EventListeners");

            if (events == null)
                return false;

            events.Install(this);

            return true;
        }

        #endregion

        #region EventListener Members

        public void RunFinished(Exception exception)
        {
            //do something here.
        }

        public void RunFinished(TestResult result)
        {
            //do something here.
        }

        public void RunStarted(string name, int testCount)
        {
            //do something here.
        }

        public void SuiteFinished(TestResult result)
        {
            //do something here.
        }

        public void SuiteStarted(TestName testName)
        {
            //do something here.
        }

        public void TestFinished(TestResult result)
        {
            //do something here.
        }

        public void TestOutput(TestOutput testOutput)
        {
            //do something here.
        }

        public void TestStarted(TestName testName)
        {
            //do something here.
        }

        public void UnhandledException(Exception exception)
        {
            //do something here.
        }

        #endregion
    }
}

关于c# - 从 Nunit 获取失败测试列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11441430/

相关文章:

c# - 如何在 C# 中连接到数据库并遍历记录集?

javascript - Ava 在 addEventListener() 上测试 setTimeout()

Angular Testing : FormControl valueChanges Observable

c# - 将秒表转换为整数

c# - 在 LINQ 查询中调用 SQL Server UDF

c# - 设计者未保存基类的属性值

ruby - 失败后继续 rake

unit-testing - 如何模拟 MuleEventContext 类

c# - 查找程序集中某个类的所有用途

c# - 使用 nunit 重新加载 app.config