You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Rider中运行单元测试时如何查看应用程序Serilog日志?

在Rider的NUnit单元测试中显示Serilog日志的解决方案

如果已经尝试了Serilog.Sinks.NUnit但没生效,大概率是配置或Rider设置的问题,按以下步骤排查:

  • 确认NuGet包安装正确
    确保安装了匹配版本的Serilog.Sinks.NUnit,可以通过dotnet CLI执行:

    dotnet add package Serilog.Sinks.NUnit
    

    或在NuGet包管理器中搜索安装,同时检查Serilog本身的版本兼容性。

  • 在测试类中正确初始化Serilog
    需要在测试的Setup阶段将Serilog绑定到NUnit的TestContext,这样日志才会被转发到测试输出。示例代码:

    using NUnit.Framework;
    using Serilog;
    using Serilog.Sinks.NUnit;
    
    [TestFixture]
    public class SampleTestClass
    {
        [SetUp]
        public void InitializeLogger()
        {
            Log.Logger = new LoggerConfiguration()
                .MinimumLevel.Debug() // 调整为你需要的最低日志级别
                .WriteTo.NUnitTestContext(TestContext.CurrentContext)
                .CreateLogger();
        }
    
        [TearDown]
        public void CleanupLogger()
        {
            Log.CloseAndFlush();
        }
    
        [Test]
        public void FailingTestWithLogs()
        {
            Log.Information("执行测试步骤1");
            Log.Warning("发现异常前置条件");
            // 触发测试失败
            Assert.AreEqual(1, 2, "数值不匹配");
        }
    }
    
  • 配置Rider显示测试输出
    测试运行后,在Rider的「Unit Tests」窗口中:

    1. 选中失败的测试用例
    2. 点击窗口底部的「Output」标签(默认可能只显示「Stacktrace」)
    3. 在「Show output from」下拉菜单中选择「All」或当前测试会话,即可看到Serilog输出的日志内容
  • 检查日志级别配置
    确保Serilog的MinimumLevel设置足够低,比如如果你的日志是Debug级别,但配置成Information,则Debug日志不会被输出,根据需要调整为Debug或Verbose。

  • 验证NUnit版本兼容性
    确保Serilog.Sinks.NUnit支持你当前使用的NUnit版本(比如NUnit 3.x),如果版本不兼容,尝试更新Serilog.Sinks.NUnit到最新稳定版。

内容的提问来源于stack exchange,提问作者Oleksiy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 04:48:22