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

如何在VS Code的C#单元测试中向调试控制台输出信息

在VS Code的C#单元测试中输出消息的正确方式

VS Code的C#测试运行器默认不会捕获System.Console.WriteLine或Debug.WriteLine的输出——前者的输出不会被测试框架拦截,后者仅发送到调试器窗口,Debug Test模式下未必能正确关联显示。要在测试过程中向用户显示消息,需根据你使用的测试框架,借助对应框架的测试上下文工具:

MSTest

在测试类中声明TestContext属性,框架会自动注入实例,通过它的WriteLine方法输出的消息会被测试运行器捕获并显示在测试结果中:

[TestClass]
public class SampleTests
{
    public TestContext TestContext { get; set; }

    [TestMethod]
    public void TestSample()
    {
        TestContext.WriteLine("当前测试执行到步骤1:初始化测试数据");
        // 你的测试逻辑
        TestContext.WriteLine("测试完成,结果符合预期");
    }
}

xUnit

xUnit使用ITestOutputHelper作为输出工具,通过构造函数注入后调用WriteLine即可:

public class SampleTests
{
    private readonly ITestOutputHelper _testOutput;

    public SampleTests(ITestOutputHelper testOutput)
    {
        _testOutput = testOutput;
    }

    [Fact]
    public void TestSample()
    {
        _testOutput.WriteLine("开始执行xUnit测试");
        // 测试逻辑
        _testOutput.WriteLine("xUnit测试执行结束");
    }
}

NUnit

NUnit直接提供静态的TestContext.WriteLine方法,无需额外注入,直接调用就能输出消息:

[TestFixture]
public class SampleTests
{
    [Test]
    public void TestSample()
    {
        TestContext.WriteLine("NUnit测试启动");
        // 测试逻辑
        TestContext.WriteLine("NUnit测试完成");
    }
}

查看输出的方式

运行Debug Test后,打开VS Code左侧的「测试」面板,点击对应的测试用例,右侧面板会显示该测试的详细输出内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 04:50:27