如何安慰.WriteLine from [TestMethod]

本文关键字:from TestMethod WriteLine 何安慰 安慰 | 更新日期: 2023-09-27 18:08:51

我正在尝试显示一些来自[TestMethod]方法的信息。

通常我们使用NUnit和一行Console.WriteLine运行良好,我们可以在"输出"窗口中看到它,但在这个项目中,我们必须使用嵌入VS2010的测试工具和Console.WriteLine不运行,因为我们看不到任何东西。

我想要的是显示跟踪消息在'输出'窗口以这种方式或多或少:

using System;
using System.Text;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;

namespace Test1
{
    [TestClass]
    public class TestNum1
    {
        [TestMethod]
        public void Constructors()
        {
            for (int b = 1; b < 99; b++) {
                Console.WriteLine(b.ToString());  // <<<<<<< This don't show on Output.
                Assert.AreEqual(b, b);  // This is only a silly sample.
            }
        }
    }
}

如何安慰.WriteLine from [TestMethod]

您应该将Console.WriteLine替换为System.Diagnostics.Debug.WriteLine(...)

,您将在Visual Studio调试输出窗口中看到输出。

编辑:刚刚发现这是一个重复的问题,看这里:

如何写入控制台。在执行MSTest测试期间输出

您可以使用testContextInstance.WriteLine(string s);

可以通过MSTest命令行命令和/detail:stdout选项强制显示Console.WriteLine()

例如:

MSTEST /testcontainer:MyDllToTest.dll /testSettings.local.TestSettings /detail:stdout

(注意我使用/testSettings来防止在testResults目录中复制(部署)DLL