Обе эти проблемы, похоже, являются проблемами с 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){}
}
}