【发布时间】:2020-07-20 01:42:42
【问题描述】:
编辑:以下是原标题发布的前一个问题
xunit 在控制台运行时显示 ITestOutputHelper 输出
经过调查(参见 cmets),这个问题仍然非常相关,需要答案,但似乎应该针对 vstest 框架和输出接收器而不是 xunit 解决。
现在的具体问题是:当将某些内容写入dotnet vstest 输出接收器时,如何在从命令行运行dotnet test 时显示它。具体来说,我希望能够使用dotnet watch 设置一个观察者来连续运行测试,我更关心输出而不是结果(我将其用作测试系统,而更多地用作开发笔记本)。而且我不想局限于visual studio或vscode。
原问题:
在我的测试课中
[Fact]
public void Test() {
output.WriteLine("WHATEVER");
}
readonly ITestOutputHelper output;
public GroceryTests(ITestOutputHelper output) => this.output = output;
当我通过 vscode 编辑器内集成运行它时,我可以在“输出”窗格中看到输出。当我通过dotnet test 运行它时,我没有。如何通过控制台显示此输出?
【问题讨论】:
-
在命令行上尝试
-v n或-v d以提高日志级别。如果这没有提供一种方法,您可以通过装饰助手和tee将其输出到控制台并使用Console.WriteLine来破解它? xunit 机制简单地转发到dotnet vstest提供的测试输出接收器,该接收器被单独捕获和存储(这解决了当同时运行的测试的输出穿插时会发生什么的问题)。这东西住在github.com/microsoft/vstest -
所以我尝试了
-v,它往往会提供吨关于框架本身正在做什么以及它的加载内容的输出,但似乎没有记录任何其他内容.一直在尝试跟踪消息接收器的内容,但即使我在那里找到了类型图,我该如何修改它? -
我个人会选择以下路径:A) 深入研究
dotnet vstestB) 只需使用与 Console.WriteLine 连接的 ITestOutputHelper 进行装饰(如果它不起作用,请转到 A :( ) -
@RubenBartelink 但简单地发球到
Console.WriteLine实际上不会将输出分组到测试中。似乎这与使用Console.WriteLine开始并在并行运行测试时遇到所有相同的问题没有任何不同。 -
xUnit 团队表示他们无权访问此内容。 Posted a question to vstest