2011-09-18 19 views
17

Estoy tratando de mostrar cierta información de un método [TestMethod].Cómo Console.WriteLine desde [TestMethod]?

Utilizamos generalmente NUnit y una línea con Console.WriteLine corre bien, y lo podemos ver en la ventana de 'salida', pero en este proyecto debemos utilizar herramientas de prueba embebida con VS2010 y Console.WriteLine no funciona porque no podemos ver nada .

Lo que yo quiero es mostrar mensajes de traza en la ventana 'Salida' de esta forma, más o menos:

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. 
      } 
     } 
    } 
} 
+0

Sí, tiene usted razón Lo siento mi. pregunta duplicada, pero debo agregar una nota: debe ejecutar sus pruebas en modo de depuración o no puede ver ninguna salida. – ferpega

Respuesta

26

se debe reemplazar Console.WriteLine con System.Diagnostics.Debug.WriteLine(...)

y verá la salida en el Visual Ventana de salida de depuración de Studio.

Editar: acabo de enterar ahora esto es una pregunta duplicada, mira aquí:

How to write to Console.Out during execution of an MSTest test

+2

Hola @Davide Piras, he cambiado 'Console.WriteLine' con' System.Diagnostics.Debug.WriteLine', pero Todavía no puedo ver cualquier cosa en mi ventana de salida. – ferpega

+1

Ok ... He visto que DEBO ejecutar Pruebas en modo de depuración o no puedo ver nada. – ferpega

+0

Debe ejecutar las pruebas en modo de depuración si y solo si está utilizando Debug.WriteLine; si usa Trace.WriteLine puede utilizar cualquier compilación, incluida la versión –

6

puede forzar la visualización de Console.WriteLine() ejecutando MSTest línea de comandos con la opción /detail:stdout.

por ejemplo:

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

(tenga en cuenta que utilizo /testSettings para evitar la copia de DLL (despliegue) en un directorio testresults

17

se puede utilizar el testContextInstance.WriteLine(string s);

+1

Sería muy bueno saber de dónde debería venir eso. – Akku

+5

@ Akku, simplemente agrega 'public TestContext TestContext {get; conjunto; } 'a tu clase. El corredor de prueba lo rellena para usted. También puede recibirlo como un parámetro para sus métodos 'ClassInitialize' y' AssemblyInitialize'. – Sam

+0

¡Exactamente lo que estaba buscando! Texto entregado directamente a la ventana de resultados de prueba: ¡perfecto! – Shawson

Cuestiones relacionadas