nunit - NUnit 自定义命令未调用 Execute()
问题描述
我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 和控制台运行程序。
解决方案
您的命令永远不会调用内部命令。因此,从未完成任何测试执行。查看 NUnit 自己的 MaxTimeCommand 的源代码,看看它是如何完成的。请注意,您可以在调用innerCommand.Execute()
.
阅读评论后,我意识到您的示例可能与您正在做的不完全匹配,但您我们真的只能为您提供有关您向我们展示的代码的答案。
推荐阅读
- excel - 连续计算多个日期范围内的唯一日期
- javascript - Child_Processes 从 javascript 节点 js 调用函数到 python 中断导入
- angular - 在Angular中使用ngFor在表中生成多行
- python - 从科学杂志获取 xpath 时遇到问题,它返回一个没有元素的列表
- c - 从 ldconfig 获取已知的库路径以用于 dlopen
- vhdl - 与零不同时锁存数据
- angular - 带有 RxJS 过滤器输入问题的 Typescript
- sql - 如何选择包含组的最大有效期限的特定值的记录(oracle sql)
- angular - 未选中复选框然后选中时角度形式无效
- firebase - 如何在前端 Firebase 托管上调用环境变量?