كيف أرى التصحيح.WriteLine البيانات عند استخدام TestDriven.Net?

StackOverflow https://stackoverflow.com/questions/173641

  •  05-07-2019
  •  | 
  •  

سؤال

أحاول استخدام TestDriven.Net ليس فقط لاختبار قانون بلدي ، ولكن إلى استدعاء دالة على قانون بلدي الذي يهدف إلى طباعة الدولة الداخلي من رمز إلى إطار التصحيح.

وهنا مبسطة جدا ما أحاول فعله..

<TestFixture()> _
Public Class UnitTest

    <Test()> _
    Public Sub TestDebug()
        Dim oClass1 As New Class1

        Assert.AreEqual(True, oClass1.IsTrue)

        Debug.WriteLine("About to call .PrintDebug()")
        oClass1.PrintToDebug()

    End Sub

End Class

Public Class Class1

    Private _IsTrue As Boolean = True

    Public ReadOnly Property IsTrue() As Boolean
        Get
            Return _IsTrue
        End Get
    End Property

    Public Sub PrintToDebug()
        Debug.WriteLine("Internal state of Class1: " & _IsTrue)
    End Sub

End Class

أحاول اختبار واجهة عامة من Class1 وبطريقة عرض الإخراج من Class1.PrintToDebug() وظيفة.

لقد بدا من خلال TestDriven.Net التشغيل السريع, الذي يظهر من الأمثلة على استخدام Debug.WriteLine في اختبار الوحدة ، ولكن الغريب هذا لا يعمل بالنسبة لي أيضا - أيفقط الانتاج في 'اختبار' نافذة:

------ Test started: Assembly: ClassLibrary1.dll ------


1 passed, 0 failed, 0 skipped, took 1.19 seconds.

لقد حاولت البحث في ويندوز الأخرى (تصحيح وبناء) ، Debug لديه برنامج الإخراج " و "رسائل الاستثناء' الخيارات ممكنة.

بحثت عن خيارات أو تفضيلات ولا يمكن العثور على أي!

شكرا على مساعدتكم!


تحرير: أنا باستخدام VB.Net 2.0, TestDriven.Net 2.14.2190 و NUnit 2.4.8.0

هل كانت مفيدة؟

المحلول

لقد وجدت أنه في حين التصحيح.Writeline() لا يعمل مع وحدة الاختبارات, وحدة التحكم.WriteLine() لا.

والسبب هو أنه عند تشغيل الاختبارات ، المصحح العملية ليست الاحتجاج و التصحيح.WriteLine() هو تجاهلها.ومع ذلك ، إذا كنت تستخدم "اختبار مع المصحح" أعتقد (لم اجرب) التصحيح.WriteLine() العمل.

نصائح أخرى

Trace.WriteLine() يبدو أن الإجابة :س)

هنا خرج على سبيل المثال من سؤالي ، باستخدام Trace بدلا من Debug:

------ Test started: Assembly: ClassLibrary1.dll ------

Internal state of Class1: True

1 passed, 0 failed, 0 skipped, took 0.61 seconds.

شيء واحد لقد وجدت على الرغم من..التنفيذ وقف عند أول فشل اختبار وحدة التأكيد ، وهذا يعني أن Trace البيانات لا يعدم إذا Assert() فوقهم فشل.

حاول استخدام أثر.WriteLine(...) بدلا من ذلك.الدعوة إلى التصحيح.WriteLine(...) لن يتم إلا عند التصحيح يتم تعريف.بشكل افتراضي جديد Visual Studio مشاريع لم يعد تعريف التصحيح ، لكنها لا تحدد أثر.

يجب تغيير التشغيل السريع سبيل المثال استخدام تتبع بدلا من ذلك.

التحيات ، جيمي.

قد تريد أن تعرف أن 2.16 (الحالية الإصدار بيتا) ويشمل:

1587:دائما عرض وحدة التحكم الإخراج/خطأ واختبار عداء الرسائل

اختبار عداء إنشاء الرسائل ، وحدة الإخراج الآن سيتم عرض عند تشغيل جميع الاختبارات في المشروع/الحل.

1588:عرض اختياريا تتبع/debug الإخراج عند تشغيل جميع الاختبارات في المشروع/الحل

بشكل افتراضي تتبع/إخراج التصحيح ليس عرض عند تنفيذ جميع الاختبارات في مشروع/الحل.هذا السلوك يمكن أن يمكن تعديلها عن طريق TesDriven.Net جزء الخيارات.

لذلك يبدو أنه سوف يعمل في النسخة المقبلة.

IIRC, إخراج هذا فقط هو مبين في إطار الإخراج عند تشغيل اختبار فردي.حاول النقر بزر الماوس الأيمن في اختبار طريقة لتشغيل مجرد اختبار...?

"تشغيل الاختبارات..." تلتقط أي الإعداد لديك حاليا لبناء الحل/المشروع.

لديك للتأكد من أن بناء الحالي إعدادات الحل/المشروع يتم تعيين إلى "تصحيح" وليس إلى "الإفراج" (وإلا التصحيح.الكتابة*() المكالمات مشروط إزالة من قبل المترجم).

CTRL + ALT + I يظهر لك مباشرة نافذة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top