使用 Visual Studio 测试运行器运行的 xUnit 测试的输出未显示在输出窗口中

Jer*_*oen 5 .net c# xunit.net visual-studio .net-core

我创建了一个名为 .NET Core 类库的新项目FooBarBaz。然后我使用包管理器控制台来运行:

  • Install-Package xunit xunit
  • Install-Package xunit xunit.runners.visualstudio

这是我添加的唯一代码:

using Xunit;
using Xunit.Abstractions;

namespace FooBarBaz
{
    public class Class1
    {
        private readonly ITestOutputHelper output;

        public Class1(ITestOutputHelper output)
        {
            this.output = output;
            output.WriteLine("OUTPUT FROM MY CONSTRUCTOR");
        }

        [Fact]
        public void SmokeTest()
        {
            output.WriteLine("OUTPUT FROM MY TEST");
            Assert.True(true);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这直接基于xUnit.net 文档示例。我知道文档继续讨论“消息接收器”之类的内容,但我可以发誓我在Visual Studio 的输出窗口中看到了该消息。在我的实际项目中,这似乎工作不稳定。

我知道我可以在选择测试后单击“输出”超链接并查看它,但这只是额外的一步,而且该输出也没有等宽字体(我希望有)。

看看这个:

输出窗口无输出

如何配置 xUnit 以在“输出”窗口中提供输出?

Jer*_*oen 5

输入问题并进行更多操作后,弹出了完全模糊的解决方案:只有失败的测试才会ITestOutputHelper在“输出”窗口中显示输出。

尝试将断言更改为Assert.True(false);,您将得到以下结果:

输出窗口有输出

不确定为什么这是默认值,或者您将如何更改它。