NUnit ITestEventListener只能连续输出

时间:2017-01-30 15:49:37

标签: c# automated-tests nunit nunit-3.0

我有一个非常简单的TestEventListener,它将输出发送到控制台和文本文件。但是,它目前打印所有内容,我只想捕捉事件,但我不知道该怎么做。此外,是否可以实现它?截至目前,它似乎只是在测试运行后打印,这并不是非常理想的。这就是我现在所拥有的:

class TestListener : ITestEventListener
{
    StreamWriter _outputStream;
    string _outputFile;

    public TestListener(string outputPath)
    {
        _outputFile = outputPath + "\\ConsoleLog.txt";
        _outputStream = new StreamWriter(_outputFile);
    }

    public void OnTestEvent (string report)
    {
        WriteText(report);
    }

    public void WriteText(string text)
    {
        Console.WriteLine(text);
        _outputStream.WriteLine(text);
    }
}

1 个答案:

答案 0 :(得分:0)

这是你的代码打印一切。正如您所见,report是XML。您可以在代码中查看它并决定要打印的内容。

最有可能的是,在您收到的事件中,如果有的话,您将看到测试开始,测试结果和即时文本输出。您要显示哪些内容?

只要在测试结束后才获得输出,那将是测试结果输出,显然必须在测试结束后出现。它包含一个元素output,其中包含在测试过程中完成的任何文本写入。

如果您想要立即输出(来自test-output报告),则必须在测试中创建它。以这种方式发送的唯一输出是Console.Error,TestContext.Error和TestContext.Progress。这是测试结束前唯一的输出。