在运行xunit测试时无法将输出打印到控制台窗口

问题描述 投票:0回答:1
public class test2InAnotherProject
{
    private readonly ITestOutputHelper output;

    public test2InAnotherProject(ITestOutputHelper output)
    {
        this.output = output;
    }
    int Diff(int a, int b)
    {
        return (a - b);
    }
    int Div(int a, int b)
    {
        return (b / a);
    }

    [Fact]
    public void Test2()
    {
        int a = 2, b = 4;

        output.WriteLine("Test1: Project 2 in old library");
        int c = Diff(a, b);
        Assert.Equal(c, (a - b));
        output.WriteLine("Test1: Asssert done Project 2 in old library");
    }

    [Fact]
    public void Test3()
    {
        int a = 2, b = 4;

        output.WriteLine("Test2: Project 2 in old library");
        int c = Div(a, b);
        Assert.Equal(c, (float)((b / a)));
        output.WriteLine("Test2: Assert done Project 2 in old library");
    }
}

尝试使用命令通过命令提示符运行测试时打印这些行

dotnet test --no-build

尝试Console.Writeline,之后我尝试用Output.WriteLine。即使我从Visual Studio运行也无法在输出窗口中打印这些行。

c# xunit
1个回答
1
投票

请注意,您可以使用ITestOutputHelper,它应该写输出。

refer this documentation了解更多详情。

public class MyTestClass
{
    private readonly ITestOutputHelper output;

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

    [Fact]
    public void MyTest()
    {
        var temp = "my class!";
        output.WriteLine("This is output from {0}", temp);
    }
}

0
投票

事实上,Console.WriteLine没有输出。并且ITestOutputHelper输出未显示在“输出”窗口中。相反,当您在“测试资源管理器”中单击测试时,会出现“输出”链接。单击该链接以查看输出。

要在命令行上显示测试输出,请使用dotnet test --logger "console;verbosity=detailed"

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.