pytest-2.9.0

pytest ist ein ausgereiftes Python-Testwerkzeug mit mehr als 1100 Tests gegen sich selbst, das auf vielen verschiedenen Interpretern und Plattformen funktioniert.

Siehe unten für die Änderungen und Dokumentation unter

Wie üblich können Sie von PyPI aus upgraden über

pip install -U pytest

Vielen Dank an alle, die zu dieser Veröffentlichung beigetragen haben, darunter

Anatoly Bubenkov Bruno Oliveira Buck Golemon David Vierra Florian Bruhin Galaczi Endre Georgy Dyuldin Lukas Bednar Luke Murphy Marcin Biernat Matt Williams Michael Aquilina Raphael Pierzina Ronny Pfannschmidt Ryan Wooden Tiemo Kieft TomV holger krekel jab

Viel Spaß beim Testen, Das py.test Entwicklungsteam

2.9.0 (im Vergleich zu 2.8.7)

Neue Features

  • Neues pytest.mark.skip-Markierung, die markierte Tests bedingungslos überspringt. Vielen Dank an @MichaelAquilina für den vollständigen PR (#1040).

  • --doctest-glob kann jetzt mehrmals in der Kommandozeile übergeben werden. Vielen Dank an @jab und @nicoddemus für den PR.

  • Die neuen Reporting-Optionen -rp und -rP geben die Zusammenfassung bzw. die vollständige Ausgabe von erfolgreichen Tests aus. Dank an @codewarrior0 für den PR.

  • pytest.mark.xfail hat jetzt eine strict-Option, die XPASS-Tests dazu bringt, die Testsuite fehlschlagen zu lassen, standardmäßig auf False gesetzt. Es gibt auch eine xfail_strict-Ini-Option, die dies projektweit konfigurieren kann. Vielen Dank an @rabbbit für die Anfrage und @nicoddemus für den PR (#1355).

  • Parser.addini unterstützt jetzt Optionen vom Typ bool. Vielen Dank an @nicoddemus für den PR.

  • Die neue ALLOW_BYTES-Doctest-Option entfernt b-Präfixe aus Byte-Strings in der Doctest-Ausgabe (ähnlich wie ALLOW_UNICODE). Vielen Dank an @jaraco für die Anfrage und @nicoddemus für den PR (#1287).

  • Gibt einen Hinweis bei KeyboardInterrupt, die Option --fulltrace zu verwenden, um die Fehler anzuzeigen. Dies behebt #1366. Vielen Dank an @hpk42 für den Bericht und @RonnyPfannschmidt für den PR.

  • Fängt IndexError-Ausnahmen beim Abrufen des Quellorts der Ausnahme ab. Dies behebt einen internen pytest-Fehler für dynamisch generierten Code (Fixtures und Tests), bei dem Quellzeilen absichtlich gefälscht sind.

Änderungen

  • Wichtig: py.code wurde in das pytest-Repository als pytest._code integriert. Diese Entscheidung wurde getroffen, da py.code außerhalb von pytest nur sehr wenige Verwendungen hatte und die Tatsache, dass es sich in einem anderen Repository befand, die zeitnahe Behebung von Fehlern im Code erschwerte. Das Team hofft, dadurch diesen Code besser refaktorisieren und verbessern zu können. Diese Änderung sollte keine Auswirkungen auf die Benutzer haben, aber es ist nützlich, die Benutzer zu informieren, falls sie seltsames Verhalten feststellen.

    Beachten Sie, dass der Code für pytest._code privat und experimentell ist, daher sollten Sie ihn auf keinen Fall explizit importieren!

    Bitte beachten Sie, dass das ursprüngliche py.code weiterhin in pylib verfügbar ist.

  • pytest_enter_pdb empfängt nun optional das pytest-Konfigurationsobjekt. Vielen Dank an @nicoddemus für den PR.

  • Code und Dokumentation für Python 2.5 oder ältere Versionen entfernt, einschließlich der Entfernung des veralteten Moduls _pytest.assertion.oldinterpret. Vielen Dank an @nicoddemus für den PR (#1226).

  • Vergleiche werden jetzt immer vollständig angezeigt, wenn CI oder BUILD_NUMBER in der Umgebung gefunden wird, auch wenn -vv nicht verwendet wird. Vielen Dank an @The-Compiler für den PR.

  • --lf und --ff unterstützen jetzt die Langnamen: --last-failed bzw. --failed-first. Vielen Dank an @MichaelAquilina für den PR.

  • Erwartete Ausnahmen zur Fehlermeldung von pytest.raises hinzugefügt

  • Die reine Sammlung zeigt den Fortschritt ("collecting X items") nur an, wenn sie in einem Terminal ausgeführt wird. Dies vermeidet überflüssige Ausgaben, wenn --color=yes verwendet wird, um Farben in CI-Integrationssystemen zu erhalten (#1397).

Fehlerbehebungen

  • Die Optionen -s und -c sollten jetzt unter xdist funktionieren; Config.fromdictargs stellt seine Eingaben jetzt wesentlich getreuer dar. Vielen Dank an @bukzor für den vollständigen PR (#680).

  • Fix (#1290): Unterstützung des @-Operators von Python 3.5 bei der Assertion-Rewriting. Vielen Dank an @Shinkenjoe für den Bericht mit Testfall und @tomviner für den PR.

  • Formatierung von UTF-8-Erklärungsnachrichten korrigiert (#1379). Vielen Dank an @biern für den PR.

  • Fix der Dokumentation zum Traceback-Stil, um alle verfügbaren Optionen (auto/long/short/line/native/no) zu beschreiben, wobei auto seit v2.6 der Standard ist. Vielen Dank an @hackebrot für den PR.

  • Fix (#1422): junit record_xml_property erlaubt keine mehreren Datensätze mit gleichem Namen.