小编Dzi*_*kas的帖子

如何将 TestServer 输出记录到测试控制台

我目前正在为我的 ASP .Net Core 5 REST API编写集成测试(https://docs.microsoft.com/en-us/aspnet/core/test/integration-tests?view=aspnetcore-5.0)。API 使用 Serilog 进行日志记录(使用静态 Serilog Logger)。我正在使用 NUnit、Visual Studio 2019、Resharper 运行测试。

我希望在 API 代码运行时记录的所有消息都在测试控制台输出中可见。
例如,如果调用此控制器方法:

using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Serilog;

namespace My.Crazy.Api.Controllers
{    
    public sealed class WheelsController : Controller
    {
        [HttpGet("getwheels")]        
        public async Task<IActionResult> Get()
        {            
            Log.Error("An extremely urgent error");         
            return Ok();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望在测试控制台中显示“极其紧急的错误”消息。
然而,这并没有发生。

这是我的 TestServer 设置:

[OneTimeSetUp]
public async Task Setup()
{            
    var hostBuilder = new HostBuilder()
        .ConfigureWebHost(webHost =>
        {
            webHost.UseTestServer();
            webHost.UseStartup<Startup>();  // Startup is the API project's …
Run Code Online (Sandbox Code Playgroud)

c# integration-testing nunit serilog asp.net-core

6
推荐指数
1
解决办法
669
查看次数

标签 统计

asp.net-core ×1

c# ×1

integration-testing ×1

nunit ×1

serilog ×1