2013-10-11 9 views
11

Die py.test assert docs sagenpy.test: Format fehlgeschlagen behaupten und drucken Sie benutzerdefinierte Nachricht

... wenn Sie eine Nachricht mit der Behauptung wie folgt angeben:

assert a % 2 == 0, "value was odd, should be even"

dann keine Behauptung Introspektion findet überhaupt statt und die Nachricht wird im Traceback einfach angezeigt.

Pythons builtin unittest Modul tut dies auch, es sei denn, Ihre TestCase Sets longMessage = True.

Die schöne Assert-Formatierung ist Test-Entwickler freundlich, während die benutzerdefinierte Nachricht mehr Business-Anforderung/Mensch freundlich ist. Die benutzerdefinierte Nachricht ist besonders hilfreich, wenn Sie sich nicht im Kontext des Tests befinden, d. H. Sie beantwortet, was diese Assert dort tut, ohne sich den Code ansehen zu müssen. Also, ich hätte gerne beide Nachrichten.

Gibt es eine Möglichkeit, py.tests schön zu bekommen Introspektion und Formatierung UND eine benutzerdefinierte Nachricht drucken?

Antwort

2

Es gibt keine Möglichkeit, zusätzliche Assertion-Zusatzinformationen und eine aktuelle Nachricht zu aktivieren. Ich denke, es könnte hinzugefügt werden, aber nicht sicher, wie viel Aufwand benötigt wird. Bisher ist mir dieses Problem nicht bekannt geworden. Fühlen Sie sich frei, ein Problem zu melden oder versuchen Sie eine Pull-Anfrage. Beachten Sie jedoch, dass Sie, wenn Sie sich die Mühe machen, eine benutzerdefinierte lesbare Nachricht zu schreiben, wahrscheinlich auch einige interessante Werte aus dem Ausdruck hinzufügen können.

+0

"Sie können wahrscheinlich auch einige interessante Werte aus dem Ausdruck hinzufügen" - definitiv, aber auf Kosten der Wiederholung, und ich bekomme nicht die nette Formatierung. Jedenfalls werde ich [BitBucket des Projekts] (https://bitbucket.org/hpk42/pytest/) verfolgen. – Bluu

+0

Ich habe auf der Bitbucket-Seite für py.test keine Diskussion darüber gesehen. Wurde das hinzugefügt jemals diskutiert? –

+0

@ durden2.0 nein, es fiel von meinem Radar, als ich mich entschied, mich zu wiederholen (und etwas weniger ausdrucksvoll). – Bluu