将TextContext.Error.WriteLine()中的数据放在NUnit默认结果编写器中输出的开头

时间:2018-07-17 05:22:31

标签: c# .net nunit teamcity

我希望能够在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)
    {
    }
}

我还在尝试其他选项,以将该属性作为测试名称的一部分,但这会使所有内容变得更加混乱。

1 个答案:

答案 0 :(得分:0)

NUnit提供两种文本输出:普通输出和立即输出。

正常输出包括Console.Out和TestContext.Out的输出。它始终保存为测试结果的一部分,并在测试结束时显示。 TestContext.WriteLine是TestContext.Out.WriteLine的缩写。

立即输出,顾名思义,立即显示。这包括Console.Error,TestContext.Error和TestContext.Progress。 TestContext.Progress是用于非错误立即输出的常规输出流。