Обе эти проблемы, похоже, являются проблемами с NUnit, хотя, если вы не хотите создавать обернутые тесты по отдельности, я думаю, вы можете просто вызвать вызов suite.Run с соответствующими параметрами, и это решит последнюю проблему.

т всем У меня есть вопрос, касающийся расширения NUnit (2.5.10). То, что я пытаюсь сделать, это написать дополнительную информацию о тесте в базу данных. Для этого я создал расширение NUnit, используя Event Listeners. Проблема, с которой я сталкиваюсь, заключается в том, что публичный метод void TestFinished (результат TestResult) вызывается дважды во время выполнения. И мой код, который пишет в базу данных, находится в этом методе, и это оставляет меня с дублирующимися записями в базе данных. Вопрос: это ожидаемое поведение? Могу ли я что-нибудь с этим сделать? Код расширения указан ниже. Благодарю.

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

namespace NuinitExtension
{
[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)
    {
        // this is just sample data
        SqlHelper.SqlConnectAndWRiteToDatabase("test", test", 
                                               2.0, DateTime.Now);
    }

    public void SuiteStarted(TestName testName){}
    public void SuiteFinished(TestResult result){}
    public void UnhandledException(Exception exception){}
    public void TestOutput(TestOutput testOutput){}
}

}

Ответы на вопрос(2)

Ваш ответ на вопрос