【发布时间】:2017-10-27 11:00:46
【问题描述】:
我的库有一些后台线程,可以将调试输出打印到 Console.WriteLine()。在第一个测试中,我可以在测试输出中看到来自后台线程的调试行。但接下来的测试不再显示此输出。
如果我在测试方法本身中调用 Console.WriteLine(),那么这将在测试输出中看到。我已经调试了它和测试调用
- 测试中的第一个 Console.WriteLine()
- 然后在后台测试中调用 Console.WriteLine()
- 最后在测试中再次调用Console.WriteLine()。
但我只直接看到测试的输出,而不是后台线程的输出。
看起来 NUnit 已将捕获的范围保存在线程上下文中。
如何从所有后台线程获取控制台输出?
【问题讨论】:
-
也许你应该打开一个关于 NUnit 的问题?无意冒犯,但我怀疑其他人会有答案。
-
TestContext.WriteLine() 有效吗?
-
@RobProuse 该库无权访问 NUnit API。
-
@RobProuse 感谢 TestContext 的提示。
-
@Horcrux7 如果你能想出一个最小的重现,请提出问题。我们应该为整个调用上下文捕获控制台输出。
标签: c# multithreading console nunit