2013-10-04 10 views
7

Ich habe einen Teststrang für Systemtests unseres Codes mit Pytest geschrieben. Diese Tests werden in unserem kontinuierlichen Integrationssystem verwendet, daher verwende ich die Ausgabeoption junit xml. Das Abschneiden von langen Strings durch Pytest bereitet mir Probleme. Ich weiß, dass ich es mit der Option -vv verhindern kann, aber dann gibt es eine ausführliche Ausgabe für die Ergebnisse jedes Tests, die schwer zu lesen ist. Im Wesentlichen möchte ich eine andere Möglichkeit, die Kürzung der langen Zeichenfolge zumindest in der Junit-XML-Datei zu verhindern. Wenn es auch in der Konsolenausgabe funktioniert, wäre das besser aber nicht unbedingt notwendig.Verhindern des Abschneidens von langen Strings in Pytest

Unser Code erzeugt Berichte mit einer großen Anzahl von Werten und ich vergleiche die Ausgabe mit einer Menge von Ausgaben, die als korrekt bekannt sind. Ich melde alle fehlerhaften Felder, nicht nur den ersten Fehler. Also erzeuge ich eine Liste von Strings mit einem Fehler pro String. Ich schließe dann die Zeichenfolgen mit Zeilenumbrüchen an, um eine lange Zeichenfolge und eine lange Zeichenfolge zu erstellen, die alle Fehler enthält. Wenn die Assertion fehlschlägt, muss ich den gesamten Inhalt der Zeichenfolge sehen, die mehrere hundert Zeilen umfassen kann.

errors = [] 
error.extend(get_report_errors()) 
s = '\n'.join(errors) 
assert (s == '') 

Irgendwelche Vorschläge

Ich verwende Python 2.6 und 2.7 und pytest 2.3.5. Ich kann die Version von pytest von benötigt upgraden.

Antwort

1

Sie können das tb Flag verwenden, dies ist die Traceback-Ausgabe für Pytest. Es gibt ein paar Optionen dafür: --tb=style traceback print mode (auto/long/short/line/native/no)

Sie müssen choise, was das Beste für Sie ist.

Verwandte Themen