我希望能够在NUnit中默认结果编写器生成的错误输出的开头显示测试类别。想法是能够在TeamCity中清楚地看到此数据。输出信息非常长,因此很难从<output>
元素的末尾读取该数据。是否可以选择不编写自定义IResultWriter
来执行此操作?类别实现:
public class MyCategory : CategoryAttribute, ITestAction
{
public string PropertyToShow { get; }
public MyCategory(string value) : base(value)
{
PropertyToShow = value;
}
public ActionTargets Targets => ActionTargets.Test | ActionTargets.Suite;
public void BeforeTest(ITest test)
{
TestContext.Error.WriteLine($"Property value: [{this.PropertyToShow}]");
}
public void AfterTest(ITest test)
{
}
}
我还在尝试其他选项,以将该属性作为测试名称的一部分,但这会使所有内容变得更加混乱。
答案 0 :(得分:0)
NUnit提供两种文本输出:普通输出和立即输出。
正常输出包括Console.Out和TestContext.Out的输出。它始终保存为测试结果的一部分,并在测试结束时显示。 TestContext.WriteLine是TestContext.Out.WriteLine的缩写。
立即输出,顾名思义,立即显示。这包括Console.Error,TestContext.Error和TestContext.Progress。 TestContext.Progress是用于非错误立即输出的常规输出流。