not able to print output to console window while running xunit tests

风流意气都作罢 提交于 2020-12-31 09:53:37

问题


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");
    }
}

trying to print those lines when test is run through command prompt by using the command

dotnet test --no-build

Tried Console.Writeline, after which i tried with Output.WriteLine. Even when i run from Visual Studio am not able to get those lines printed in output window.


回答1:


Indeed there is no output with Console.WriteLine. And the ITestOutputHelper output is not shown in the Output window. Instead, when you click on the test in the Test Explorer, then there is an Output link. Click on that link to see the output.

To show the test output on the command line, use dotnet test --logger "console;verbosity=detailed".




回答2:


Running dotnete test from within powershell console like package Manager console or powershell console ISE, you can get ALL the Console.WriteLine output for Xunit project.

In powershel ISE, run this script:

cls
cd 'path/to/project/test/folder'
dotnet test

Also any Console.WriteLine(..) in the source code is displayed in the PS console.




回答3:


Please note that you can use ITestOutputHelper and it should write output.

Please refer this documentation for more details.

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);
    }
}


来源:https://stackoverflow.com/questions/55258178/not-able-to-print-output-to-console-window-while-running-xunit-tests

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!