Code Inspection: Console output in Xunit tests
Output of unit tests is often printed using Console.WriteLine
. However, this may not work correctly with xUnit.net 2.x, because parallelization is turned on by default there. Instead, as the xUnit.net documentation suggests, you should use ITestOutputHelper
to capture test output.
JetBrains Rider will warn you about usages of Console.WriteLine
inside Fact methods and suggest a quick-fix that will convert these usages to instances of ITestOutputHelper
.
public class XUnitTestClass
{
[Fact]
public void Test1()
{
Console.WriteLine("Hello");
}
}
public class XUnitTestClass
{
private readonly ITestOutputHelper _testOutputHelper;
public XUnitTestClass(ITestOutputHelper testOutputHelper)
{
_testOutputHelper = testOutputHelper;
}
[Fact]
public void Test1()
{
_testOutputHelper.WriteLine("Hello");
}
}
Last modified: 07 April 2022