我有一个非常简单的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);
}
}
答案 0 :(得分:0)
这是你的代码打印一切。正如您所见,report
是XML。您可以在代码中查看它并决定要打印的内容。
最有可能的是,在您收到的事件中,如果有的话,您将看到测试开始,测试结果和即时文本输出。您要显示哪些内容?
只要在测试结束后才获得输出,那将是测试结果输出,显然必须在测试结束后出现。它包含一个元素output
,其中包含在测试过程中完成的任何文本写入。
如果您想要立即输出(来自test-output
报告),则必须在测试中创建它。以这种方式发送的唯一输出是Console.Error,TestContext.Error和TestContext.Progress。这是测试结束前唯一的输出。