如何解决xUnit无法输出到控制台.NET
尝试学习如何使用xunit和挣扎的方法在控制台中显示输出。我正在使用 VSCode ,并在VSCode终端中使用dotnet test
运行测试。我还尝试过从VSCode之外的终端运行。
我也尝试过在VSCode的代码窗口中的Test函数上方运行 Debug Test ,但是会收到OmniSharp Argument异常。
我使用dotnet new xunit
创建了一个新的测试项目,并将以下测试类与ITestOutputHelper
一起使用。
using System;
using System.IO;
using System.Threading.Tasks;
using Xunit;
using Xunit.Abstractions;
using System.Text.Json;
using WebApp.Data;
using WebApp.UnitTests.Fixtures;
namespace WebApp.UnitTests
{
[Collection("Motion collection")]
public class MotionInfoTest
{
private const string MotionResourceFile = @"WebApp.UnitTests.TestData.motion.json";
private MotionDetectionFixture _fixture;
private ITestOutputHelper _output;
public MotionInfoTest(MotionDetectionFixture fixture,ITestOutputHelper output) {
_fixture = fixture;
_output = output;
}
[Fact]
// public async Task TestMotionInfo()
public void TestMotionInfo()
{
try {
Stream s = _fixture.GetStream(MotionResourceFile);
_output.WriteLine(s.ReadTimeout.ToString());
if(s is null) {
throw new Exception ("ArgumentException");
}
_output.WriteLine("Finished TestMotionInfo");
}
catch(Exception e) {
_output.WriteLine("Exception occurred {0}",e.Message);
}
//MotionDetection obj = await JsonSerializer.DeserializeAsync<MotionDetection>(_fixture.GetStream(MotionResourceFile));
Assert.Equal(1,1);
//Assert.Equal("TensorFlow-WithFiltering-And-MQTT",obj.Plug);
}
}
}
由dotnet new xunit
创建的csproj文件是:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<IsPackable>false</IsPackable>
</PropertyGroup>
<ItemGroup>
<packagereference Include="Microsoft.NET.Test.Sdk" Version="16.5.0" />
<packagereference Include="xunit" Version="2.4.0" />
<packagereference Include="xunit.runner.visualstudio" Version="2.4.0" />
<packagereference Include="coverlet.collector" Version="1.2.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\WebApp.Data\WebApp.Data.csproj" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="TestData\*.json" />
</ItemGroup>
</Project>
解决方法
如果我使用以下命令,则输出将显示在终端窗口和VS Code嵌入式终端中:
dotnet test --logger "console;verbosity=detailed"
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。