Πώς μπορώ να δω τις δηλώσεις Debug.WriteLine κατά τη χρήση TestDriven.Net;

ψήφοι
5

Προσπαθώ να χρησιμοποιήσετε 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 και κατασκευής), το παράθυρο Debug έχει την «Έξοδος πρόγραμμα» και να ενεργοποιήσετε τις επιλογές «Μηνύματα Εξαίρεση».

Έχω έψαξε για επιλογές ή προτιμήσεις και δεν μπορεί να βρει καμία!

Ευχαριστώ για τη βοήθειά σου!


Επεξεργασία: Είμαι με τη χρήση VB.Net 2.0, TestDriven.Net 14/02/2190 και NUnit 2.4.8.0

Δημοσιεύθηκε 06/10/2008 στις 08:13
χρήστη
Σε άλλες γλώσσες...                            


7 απαντήσεις

ψήφοι
10

Βρήκα ότι ενώ Debug.Writeline () δεν λειτουργεί με τις δοκιμές μονάδα, Console.WriteLine () κάνει.

Ο λόγος είναι ότι κατά την εκτέλεση δοκιμών, η διαδικασία εντοπισμού σφαλμάτων δεν γίνεται επίκληση, και Debug.WriteLine () αγνοείται. Ωστόσο, αν χρησιμοποιήσετε το «Test με Debugger», νομίζω (δεν το έχω δοκιμάσει) Debug.WriteLine () θα λειτουργήσει.

Απαντήθηκε 06/10/2008 στις 08:17
πηγή χρήστη

ψήφοι
3

Trace.WriteLine() φαίνεται να είναι η απάντηση: o)

Εδώ είναι η έξοδος για το παράδειγμα από την ερώτησή μου, χρησιμοποιώντας Traceαντί για Debug:

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

Internal state of Class1: True

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

Ένα πράγμα που έχω βρεθεί κι αν .. εκτέλεση διακόπτεται κατά την πρώτη δοκιμή ισχυρισμό μονάδα άλλως, πράγμα που σημαίνει ότι Traceοι δηλώσεις δεν εκτελούνται εάν ένα Assert()από πάνω τους αποτυγχάνει.

Απαντήθηκε 06/10/2008 στις 08:36
πηγή χρήστη

ψήφοι
0

IIRC, η έξοδος αυτή εμφανίζεται μόνο στο παράθυρο εξόδου όταν τρέχει ένα άτομο δοκιμής. Δοκιμάστε να κάνετε δεξί κλικ στη μέθοδο δοκιμής για να τρέξει ακριβώς αυτή τη δοκιμασία ...;

Απαντήθηκε 06/10/2008 στις 08:45
πηγή χρήστη

ψήφοι
0

«Run Δοκιμές ...» μαζεύει ό, τι ρύθμιση θα πρέπει επί του παρόντος να οικοδομήσουμε λύση / έργου σας.

Θα πρέπει να βεβαιωθείτε ότι οι τρέχουσες ρυθμίσεις κατασκευής για λύση / έργου σας οριστεί σε «Εντοπισμός σφαλμάτων» και όχι σε «Απελευθέρωση» (αλλιώς Debug.Write * () κλήσεις υπό όρους απομακρύνονται από τον compiler).

Απαντήθηκε 06/10/2008 στις 10:34
πηγή χρήστη

ψήφοι
1

Μπορεί να θέλετε να ξέρετε ότι 2,16 (η τρέχουσα έκδοση beta) περιλαμβάνει:

1587: Πάντα έξοδο της κονσόλας οθόνης / σφάλματος και δοκιμή των μηνυμάτων δρομέας

Δοκιμή δρομέας που δημιουργούνται μηνύματα και έξοδο της κονσόλας θα πρέπει τώρα να εμφανίζεται κατά την εκτέλεση όλων των δοκιμών σε ένα έργο / λύση.

1588: Προαιρετικά οθόνη εξόδου ίχνος / debug κατά την εκτέλεση όλων των δοκιμών του έργου / λύση

Από προεπιλογή ίχνος / εξόδου εντοπισμού σφαλμάτων δεν εμφανίζεται κατά την εκτέλεση όλων των δοκιμών σε ένα έργο / λύση. Αυτή η συμπεριφορά μπορεί να τροποποιηθεί μέσω του παραθύρου επιλογών TesDriven.Net.

Έτσι φαίνεται ότι θα λειτουργήσει στην επόμενη έκδοση.

Απαντήθηκε 10/10/2008 στις 09:30
πηγή χρήστη

ψήφοι
2

Δοκιμάστε να χρησιμοποιήσετε Trace.WriteLine (...) αντ 'αυτού. Η πρόσκληση για την Debug.WriteLine (...) θα πρέπει να γίνεται μόνο όταν DEBUG ορίζεται. Από προεπιλογή νέα έργα Visual Studio καθορίζουν πλέον DEBUG, καθορίζει ωστόσο TRACE.

Θα πρέπει να αλλάξει πραγματικά το παράδειγμα βήματα για να χρησιμοποιήσετε το Trace αντ 'αυτού.

Με εκτίμηση, Jamie.

Απαντήθηκε 03/12/2009 στις 11:57
πηγή χρήστη

ψήφοι
0

CTRL + ALT + I σας δείχνει την άμεση παράθυρο

Απαντήθηκε 29/04/2013 στις 17:47
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more