首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TestContext.Out和TestContext.Progress在NUnit 3中有什么区别?

TestContext.Out和TestContext.Progress在NUnit 3中有什么区别?
EN

Stack Overflow用户
提问于 2017-05-22 16:43:22
回答 1查看 5.9K关注 0票数 7

我正在重构一个使用NUnit 3.6的测试应用程序。大多数应用程序是由非开发人员编写的,需要重构/重组。有许多遗留的帮助类使用标准

代码语言:javascript
复制
Console.Out.WriteLine();
Console.Error.WriteLine();

方法记录错误和测试进度。已经做出了一些努力来使用NUnit

代码语言:javascript
复制
TestContext.Progress.WriteLine();
TestContext.Out.WriteLine();
TestContext.Error.WriteLine();

方法在测试运行时提供“活动输出”,但不一致。接下来,我希望所有助手类/方法都使用Console.Out/Error方法,这样就可以在不依赖NUnit的情况下分离它们,然后为每个测试重定向SetUp方法中的输出。

代码语言:javascript
复制
[SetUp]
public void BaseTestSetupMethod(){
   Console.SetError(TestContext.Error);
   /* Set Console.Out to TestContext.Out or TestContext.Progress */
}

TestContext.Out和TestContext.Progress有什么区别?

对于诸如打印当前正在运行的测试的名称和它正在执行的操作这样的一般消息,我应该将Console.Out重定向到哪一个?

我阅读了NUnit 3的文档,包括https://github.com/nunit/docs/wiki/TestContext页面。虽然它列出了TestContext.OutTestContext.Progress,之间的区别,但它们并不是真正的描述性的,也没有在实践中使用其中一种而另一种的例子。

EN

回答 1

Stack Overflow用户

发布于 2019-07-22 09:48:07

答案确实出现在链接文档页面(https://github.com/nunit/docs/wiki/TestContext)上,但是自从提出这个问题以来已经有一段时间了,所以从那时起文档页面可能已经得到了改进。

至少现在它说:

输出 获取用于将输出发送到当前测试结果的TextWriter。 错误 获取用于发送用于立即显示的错误输出的TextWriter。 进展 获取用于发送用于立即显示的正常(无错误)输出的TextWriter。)

这里的关键字是“立即显示”--当某些内容被发送到错误和进度时,意图是测试运行程序应该立即显示它,而发送到Out的文本在每个测试用例结束之前都是不可见的。

这是因为NUnit 3将捕获Console.Out,在测试用例完成之前不会输出它。在NUnit 2中,常规的Console.Out和错误立即可见。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44118127

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档