การเขียนเอาต์พุตแบบเรียลไทม์ไปยังหน้าต่างหรือบานหน้าต่างข้อความระหว่าง MSTEST

ฉันกำลังใช้ Trace สิ่งอำนวยความสะดวกในการทำการบันทึก และฉันต้องการให้เอาต์พุตบันทึกปรากฏในหน้าต่างหรือบานหน้าต่างข้อความที่ไหนสักแห่งใน Visual Studio ระหว่างการทดสอบ

วิธีที่ง่ายที่สุดในการบรรลุเป้าหมายนี้คืออะไร? คำสั่ง Debug.Print() จะแสดงเมื่อสิ้นสุดการทดสอบเท่านั้น การพยายามเปิดหน้าต่างคอนโซลดูเหมือนจะไม่เริ่มต้น (ไม่ใช่แอปพลิเคชันคอนโซลและดูเหมือนว่าฉันไม่สามารถรับหมายเลขอ้างอิงที่ถูกต้องได้)

ฉันใช้คลาส Log แบบคงที่ของตัวเอง ดังนั้นฉันจึงไม่จำเป็นต้องใช้ Trace ในการดำเนินการนี้


person Robert Harvey    schedule 12.08.2011    source แหล่งที่มา


คำตอบ (1)


System.Diagnostics.Debug.WriteLine()

จะถูกบันทึกโดย Visual Studio Output Window หากคุณทำงานในโหมด Debug และไม่ควรขึ้นอยู่กับขั้นตอนการดำเนินการทดสอบ (เริ่มต้น/สิ้นสุดการทดสอบ) ดังนั้นจึงควรติดตามในเอาต์พุตการดีบักทันทีที่ดำเนินการ

เอาต์พุตประเภทนี้สามารถบันทึกและกรองได้ด้วยเครื่องมือเช่น DbgView

แก้ไข: ตอบความคิดเห็น

ฉันได้สร้างการทดสอบ MSTest และสามารถสังเกตได้ในหน้าต่าง Debug ว่าแต่ละบรรทัดใหม่ปรากฏขึ้นในแต่ละวินาทีอย่างไร: (ในหน้าต่างเอาต์พุต คุณสามารถเลือกระหว่าง Build/Debug โปรดตรวจสอบให้แน่ใจว่าคุณได้เลือกตัวเลือก Debug ในรายการแบบเลื่อนลง)

[TestMethod]
public void TestMethod1()
{
    int i = 10;

    while(i-- > 0)
    {
        Thread.Sleep(1000);
        Debug.WriteLine("Step #" + i);
    }
}

การทดสอบจะต้องดำเนินการจากเมนู Test\Debug\Tests In Current Context ตัวเลือก Run Tests จากเมนูบริบทคลิกขวา จะไม่ทำงาน

person sll    schedule 12.08.2011
comment
ใช่ แต่ไม่ใช่แบบเรียลไทม์ เท่าที่ฉันสามารถบอกได้ ฉันจะได้ผลลัพธ์เมื่อการทดสอบเสร็จสิ้นเท่านั้น - person Robert Harvey; 13.08.2011
comment
คุณกำลังเรียกมันว่า Debug Window. ชื่อที่แน่นอน คืออะไร และฉันจะหามันได้จากที่ไหนในเมนู VS - person Robert Harvey; 13.08.2011
comment
เมนู Visual Studio: ดู -> เอาต์พุต -> เลือกตัวเลือกแสดงเอาต์พุตจากการดีบัก - person sll; 13.08.2011
comment
ใช่แล้ว นาดา. โปรเจ็กต์ทดสอบได้รับการตั้งค่าเป็น Debug การเขียนบรรทัดทั้งหมดปรากฏในการติดตามผลการทดสอบดีบัก แต่ zippo ในหน้าต่างเอาต์พุต/ดีบัก - person Robert Harvey; 13.08.2011
comment
นั่นมันไป ดูเหมือนว่าคุณจะต้อง Test/Debug/Tests in Current Context; คุณไม่สามารถเพียงแค่ Right Click/Run Tests - person Robert Harvey; 13.08.2011
comment
ดูเหมือนว่าคุณได้แก้ไขปัญหานี้แล้ว แต่น่าเสียดายที่ฉันไม่เข้าใจสิ่งที่คุณหมายถึงเกี่ยวกับ Test.Debug/Tests ในบริบทปัจจุบัน น่าสนใจจริงๆ ว่าเกิดอะไรขึ้นที่นั่น - person sll; 13.08.2011