首页 > 解决方案 > Resharper:如何写入控制台输出

问题描述

我正在使用Resharper 2019 1.3。
我正在使用Xunit 运行单元测试。在用[Fact]装饰的测试方法中,我想使用 Console.WriteLine 写入 Resharper 输出。
由于某种原因,它不起作用。

有想法该怎么解决这个吗?

public class NumberTest
{
    public NumberTest()
    {
    }

    [Fact]
    public void NewNumber_should_randomize()
    {
        var number1 = Number.NewNumber();

        Console.WriteLine(number1.Value);
    }
}

标签: resharperxunit.net

解决方案


较新版本的 xUnit 稍微分离了日志记录。看看“捕获输出”文档,告诉你做这样的事情:

public class NumberTest
{
    private readonly ITestOutputHelper output;

    public NumberTest(ITestOutputHelper output)
    {
        this.output = output;
    }

    [Fact]
    public void NewNumber_should_randomize()
    {
        var number1 = Number.NewNumber();

        output.WriteLine(number1.Value);

        throw new Exception("Output _might_ only show if the test fails, depending on the runner");
    }
}

但是,请注意,我之前在类似的问答中注意到, Visual Studio 运行器可能仅在测试失败时才显示输出


推荐阅读