Ich möchte eine benutzerdefinierte assert-Methode zu einer TestCase
-Unterklasse hinzufügen. Ich habe versucht, meine Implementierung aus dem Modul unittest
zu kopieren, so dass sie so nah wie möglich dem Verhalten der regulären TestCase
entspricht. (Ich würde es vorziehen, nur an self.assertEqual()
zu delegieren, aber das verursacht noch mehr Backtrace-Rauschen, siehe unten.) Das unittest
-Modul scheint einige interne Details seiner Implementierung beim Berichten fehlgeschlagener Assertionen automatisch zu verbergen.
Die Ausgabe von diesem ist so:
%Vor% Beachten Sie, dass die benutzerdefinierte Assertion-Methode einen Stack-Trace mit zwei Frames verursacht, einen innerhalb der Methode selbst, während die Methode stock unittest
nur einen Frame hat, die relevante Zeile im Code des Benutzers. Wie kann ich dieses Bildversteckverhalten auf meine eigene Methode anwenden?
Diese Frage wurde von Peter Otten auf comp.lang.python beantwortet .
Verschieben Sie MyTestCase in ein separates Modul und definieren Sie eine globale Variable __unittest = True
.
Tags und Links python unit-testing testing stack-trace subclass