Я создал собственный атрибут NUnit
на основе этого сообщения в блоге (с несколькими незначительными изменениями), который в основном просто возвращает пользовательскую команду.Команда происходит от DelegatingTestCommand
и переопределяет Execute
, но Execute
, похоже, не вызывается.Я вывожу в тестовый контекст, и я никогда не вижу вывод.Пример минимизированного кода:
public class PrintingCommand : DelegatingTestCommand
{
public PrintingCommand( TestCommand innerCommand )
: base(innerCommand){}
public override TestResult Execute( TestExecutionContext context )
{
context.OutWriter.WriteLine( "Hello output" );
return context.CurrentResult;
}
}
[AttributeUsage( AttributeTargets.Method )]
public class PrintingAttribute : Attribute, IWrapSetUpTearDown
{
public TestCommand Wrap( TestCommand command )
{
return new PrintingCommand( command );
}
}
Когда я украшаю тест с помощью [Printing]
, я никогда не вижу Hello output
, записанного в любом месте.
Это тривиальный пример, на самом деле я делаюповтора в блоге, который не вызывается / не завершается.
Есть идеи, почему?
Использую NUnit 3 и консольный запуск в командной строке.