2011-09-18 22 views
17

[TestMethod] yönteminden bazı bilgileri göstermeye çalışıyorum. Biz bir şey göremiyorum çünkü çalışmaz VS2010 ve Console.WriteLine ile Embebed Test araçları kullanmak[TestMethod] öğesinden Console.WriteLine nasıl alınır?

Genellikle NUnit ve bir çizgi Console.WriteLine çalışır ince ve biz 'çıktı' penceresinde görebilirsiniz ile kullanmak, ancak bu proje üzerinde buna mecburuz .

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

kullanabilirsiniz Üzgünüm benim. yinelenen soru ama bir not eklemeliyim: Testlerinizi Hata Ayıklama modunda yürütmelisiniz veya herhangi bir çıktı göremiyorsunuz – ferpega

cevap

26

Eğer System.Diagnostics.Debug.WriteLine(...)

ile Console.WriteLine değiştirmeniz gerekir ve Visual çıkış görürsünüz: Benim istediğim

az ya da çok bu yolla 'Çıktı' Pencere üzerinde gösteri iz mesajları olduğunu Studio Debug Çıkış Penceresi.

Düzenleme: sadece bu bir yinelenen soru şimdi öğrendim, buraya bakın:

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

+2

Merhaba @Davide Piras, 'System.Diagnostics.Debug.WriteLine' ile' Console.WriteLine' değiştirdim ama Ben hala göremiyorum Çıkış penceremde bir şey var. – ferpega

+1

Tamam .. Testleri hata ayıklama modunda yürütmem gerektiğini veya bir şey göremediğimi gördüm. – ferpega

+0

Testlerinizi hata ayıklama modunda çalıştırmanız gerekiyorsa ve eğer sadece Debug.WriteLine kullanıyorsanız - Trace.WriteLine kullanıyorsanız, herhangi bir yapı aroması kullanabilirsiniz - yayın –

6

Sen Console.WriteLine() görüntülenmesini zorlayabilir seçeneğiyle /detail:stdout ile MSTest komut satırını çalıştırarak. örneğin

:

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

(Bir Test sonuçları dizinde DLL kopyasını (dağıtım) engellemek için /testSettings kullanmak dikkat

17

Sen Evet, haklısınız testContextInstance.WriteLine(string s);

+1

Bunun nereden geleceğini bilmek çok güzel olurdu. – Akku

+5

@Akku, sadece 'public TestContext TestContext {get; set; sınıfınıza Test koşusu sizin için doldurur. Ayrıca, 'ClassInitialize' ve' AssemblyInitialize' yöntemleriniz için bir parametre olarak da alabilirsiniz. – Sam

+0

Tam olarak aradığım şey! Çıktı metni doğrudan test sonuçları penceresine mükemmel! – Shawson

İlgili konular