Xunit -控制台重定向.WriteLine到ITestOutputHelper WriteLine



我对这个答案的解决方案有问题:https://stackoverflow.com/a/47529356/8611327

问题是当我使用并行测试用例执行控制台时。WriteLine对于所有运行的测试实例都是通用的,并且日志记录没有分配给特定的测试用例,所以我看到在最后一个测试用例下编写的日志已经实例化了WriteLineConverter,并将其设置为控制台输出:

WriteLineConverter writeLineConverter = new WriteLineConverter(_output);
Console.SetOut(writeLineConverter);

我需要使用控制台。WriteLine,因为我有很多嵌套的类,比如服务,然后访问数据库,发送http请求等,我记录时间戳和请求,我需要能够将这些日志与特定的测试用例连接起来,因为在并行场景中,来自测试用例的日志是混合的。

最终是否有可能以某种方式运行测试,使每个测试用例都有其单独的变量堆栈,而不是所有测试用例使用的共享堆栈?

我刚刚使用了ITestOutputHelper,并在我的代码中的所有构造函数中传播对它的引用,用ITestOutputHelper替换控制台输出(实际上我已经创建了允许我在需要时更改实现的接口)。这不是我的问题的答案,但也许我想要实现的是不可能没有重大的代码更改/复杂性(否则这样的功能将在xunit库中可用)。

最新更新