Comment puis-je voir le Débogage.WriteLine déclarations lors de l'utilisation de TestDriven.Net?
Je suis en train d'utiliser TestDriven.Net pas seulement pour tester mon code, mais à l'appel d'une fonction dans mon code dont le but est d'imprimer l'état interne du code dans la fenêtre de Débogage.
Voici un exemple simplifié de ce que je suis en train de faire..
<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
Je suis en train de tester l'interface Publique de Class1, et en quelque sorte à afficher la sortie de la Class1.PrintToDebug()
fonction.
J'ai regardé à travers la TestDriven.Net démarrage rapide, qui montre des exemples d'utilisation de la Debug.WriteLine
dans un test unitaire, mais étrangement, cela ne fonctionne pas pour moi non plus - c'est à dire la seule Sortie à mon "Test" de la fenêtre est:
------ Test started: Assembly: ClassLibrary1.dll ------
1 passed, 0 failed, 0 skipped, took 1.19 seconds.
J'ai essayé de regarder dans les autres fenêtres (Debug et à Construire), la fenêtre de Débogage a la "Sortie de Programme" et "Messages d'Exception' options activées.
J'ai regardé pour les options ou préférences et ne pouvez pas trouver un!
Merci pour votre aide!
Edit: je suis en utilisant VB.Net 2.0, TestDriven.Net 2.14.2190 et NUnit 2.4.8.0
Vous devez vous connecter pour publier un commentaire.
J'ai trouvé que, bien que de Débogage.Writeline() ne fonctionne pas avec les tests unitaires, de la Console.WriteLine() n'.
La raison en est que lorsque vous exécutez les tests, le processus de débogueur n'est pas invoquée, et de Débogage.WriteLine() est ignoré. Toutefois, si vous utilisez "Test avec le Débogueur", je pense (je n'ai pas essayé) Debug.WriteLine() fonctionne.
Trace.WriteLine()
semble être la réponse :o)Voici la sortie pour l'exemple de ma question, à l'aide de
Trace
au lieu deDebug
:Une chose que j'ai trouvé que.. l'exécution est interrompue lors de la première échec du test de l'unité de l'assertion, ce qui signifie que
Trace
instructions ne sont pas exécutées si unAssert()
au-dessus d'eux tombe en panne.Essayer à l'aide de Trace.WriteLine(...) à la place. L'appel à Déboguer.WriteLine(...) ne sera effectué que lorsque le DÉBOGAGE est défini. Par défaut, les nouveaux projets Visual Studio n'est plus définir de DÉBOGAGE, mais ils ne définissent TRACE.
Je devrais vraiment changer de démarrage rapide exemple de l'utilisation de la Trace à la place.
Ce qui concerne,
Jamie.
Vous pourriez vouloir savoir qui 2.16 (la version bêta actuelle) comprend:
Il semble donc qu'il sera dans la prochaine version.
IIRC, cette sortie ne s'affiche dans la fenêtre de sortie lors de l'exécution d'un test individuel. Faire un clic-droit dans la méthode de test à exécuter juste que le test...?
"Exécution de Tests..." ramasse quel que soit le réglage que vous avez actuellement pour construire votre solution ou d'un projet.
Vous avez à faire assurez-vous que la version actuelle et les paramètres de votre solution ou un projet sont mis à "Debug" et non à "Libération" (sinon de Débogage.Écrire*() les appels sont conditionnellement supprimée par le compilateur).
CTRL + ALT + je vous montre la fenêtre d'exécution