2011-09-18 14 views
17

Próbuję wyświetlić niektóre informacje z metody [TestMethod].Jak Console.WriteLine z [TestMethod]?

Zazwyczaj używamy NUnit i linię Console.WriteLine działa dobrze i możemy zobaczyć go w oknie „wyjście”, ale na tym projekcie musimy użyć narzędzia do testowania embebed z VS2010 i Console.WriteLine nie działa, ponieważ nie widzimy niczego .

Co chcę jest wiadomości pokazują ślad na „wyjście” Okno w ten sposób bardziej lub mniej:

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

Tak, masz rację Niestety mój. duplikowanie pytania, ale muszę dodać notatkę: Musisz wykonać swoje testy w trybie debugowania lub nie możesz zobaczyć żadnych wyników. – ferpega

Odpowiedz

26

należy wymienić Console.WriteLine z System.Diagnostics.Debug.WriteLine(...)

i widać wyjście w Visual Okno wyjściowe Debugera Studio.

Edit: właśnie dowiedział się teraz to jest powielany pytanie, zajrzyj tutaj:

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

+2

Hi @Davide Piras, zmieniłem 'Console.WriteLine' na' System.Diagnostics.Debug.WriteLine', ale Nie widzę jeszcze wszystko w moim oknie wyjściowym. – ferpega

+1

Ok. Widziałem, że muszę wykonać testy w trybie debugowania lub nie widzę niczego. – ferpega

+0

Musisz wykonać testy w trybie debugowania, jeśli i tylko jeśli używasz Debug.WriteLine - jeśli korzystasz z Trace.WriteLine, możesz użyć dowolnego budowania smaku - w tym wydania –

6

Można wymusić wyświetlanie Console.WriteLine() uruchamiając MSTest wiersz polecenia z opcją /detail:stdout.

na przykład:

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

(zauważ używam /testSettings aby zapobiec kopię DLL (wdrażania) w katalogu tego testu

17

Można użyć testContextInstance.WriteLine(string s);

+1

Byłoby miło wiedzieć, skąd to się wzięło. – Akku

+5

@Akku, po prostu dodaj 'public TestContext TestContext {get; zestaw; } 'do twojej klasy. Runner testowy zapełnia go dla Ciebie. Możesz również otrzymać go jako parametr dla twoich metod 'ClassInitialize' i' AssemblyInitialize'. – Sam

+0

Dokładnie tego, czego szukałem! Wyprowadzony tekst bezpośrednio do okna wyników testu - idealny! – Shawson

Powiązane problemy