如何从中控制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复制(部署)