#.net-core #xunit.net
#.net-ядро #xunit.net
Вопрос:
Пытаюсь узнать, как получить вывод, отображаемый в консоли с помощью xunit, и изо всех сил. Я использую VSCode и запускаю тесты с помощью dotnet test
терминала VSCode. Я также пробовал запускать с терминала за пределами VSCode.
Я также пытался запустить отладочный тест вышеуказанной тестовой функции в окне кода VSCode, но получаю исключение аргумента OmniSharp.
Я создал новый тестовый проект, используя 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);
}
}
}
Файл csproj, созданный dotnet new xunit
, является:
<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.DataWebApp.Data.csproj" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="TestData*.json" />
</ItemGroup>
</Project>
Кому-нибудь удалось вывести вывод на консоль?
Ответ №1:
Если я использую следующую команду, то вывод отображается в окне терминала и встроенном терминале VS Code:
dotnet test --logger "console;verbosity=detailed"