如何从中控制Console.WriteLine?

我试图从[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. } } } } 

你应该用System.Diagnostics.Debug.WriteLine(...)替换Console.WriteLine

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

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

如何在执行MSTest测试期间写入Console.Out

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

您可以通过使用选项/detail:stdout运行MSTest命令行来强制显示Console.WriteLine()

例如:

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

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