EnglischFranzösischSpanisch

Ad


OnWorks-Favicon

py.test – Online in der Cloud

Führen Sie py.test im kostenlosen Hosting-Anbieter OnWorks über Ubuntu Online, Fedora Online, den Windows-Online-Emulator oder den MAC OS-Online-Emulator aus

Dies ist der Befehl py.test, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann

PROGRAMM:

NAME/FUNKTION


pytest - pytest-Nutzung

AUFRUF PY.TEST DURCH PYTHON -M PY.TEST


Neu in Version 2.0.

Wenn Sie Python-2.5 oder höher verwenden, können Sie das Testen über den Python-Interpreter von . aufrufen
die Kommandozeile:

python -m pytest [...]

Dies entspricht dem Aufrufen des Befehlszeilenskripts py.test [...] direkt.

BEKOMMEN HILFE ON AUSFÜHRUNG, zur Auswahl NAMEN, VARIABLEN


py.test --version # zeigt an, woher pytest importiert wurde
py.test --fixtures # verfügbare eingebaute Funktionsargumente anzeigen
py.test -h | --help # Hilfe zu Befehlszeilen- und Konfigurationsdateioptionen anzeigen

STOPPEN AFTER ZUERST (ODER N) AUSFÄLLE


So stoppen Sie den Testprozess nach den ersten (N) Fehlern:

py.test -x # Stopp nach dem ersten Fehler
py.test --maxfail=2 # Stopp nach zwei Fehlern

SPEZIFIKATION TESTS / AUSWÄHLEN TESTS


Mehrere Testlaufoptionen:

py.test test_mod.py # Tests im Modul ausführen
py.test somepath # Alle Tests unterhalb von somepath ausführen
py.test -k stringexpr # Führe nur Tests mit Namen aus, die mit dem übereinstimmen
# "String-Ausdruck", zB "MyClass und nicht Methode"
# wählt TestMyClass.test_something
# aber nicht TestMyClass.test_method_simple
py.test test_mod.py::test_func # nur Tests ausführen, die der "Knoten-ID" entsprechen,
# zB "test_mod.py::test_func" wird auswählen
# nur test_func in test_mod.py
py.test test_mod.py::TestClass::test_method # eine einzelne Methode ausführen in
# eine einzelne Klasse

Importieren Sie 'pkg' und verwenden Sie den Speicherort des Dateisystems, um Tests zu finden und auszuführen:

py.test --pyargs pkg # Führe alle Tests aus, die sich unter dem Verzeichnis von pypkg befinden

ÄNDERN PYTHON ZURÜCK VERFOLGEN DRUCK


Beispiele zum Ändern des Traceback-Drucks:

py.test --showlocals # lokale Variablen in Tracebacks anzeigen
py.test -l # lokale Variablen anzeigen (Kürzel)

py.test --tb=long # die standardmäßige informative Rückverfolgungsformatierung
py.test --tb=native # die Python-Standardbibliotheksformatierung
py.test --tb=short # ein kürzeres Traceback-Format
py.test --tb=line # nur eine Zeile pro Fehler

FALLEN TO PDB (PYTHON Debugger) ON AUSFÄLLE


Python kommt mit einem eingebauten Python-Debugger namens PDB. Frage lässt einen fallen in
PDB Eingabeaufforderung über eine Befehlszeilenoption:

py.test --pdb

Dadurch wird der Python-Debugger bei jedem Fehler aufgerufen. Oft möchten Sie vielleicht nur tun
dies für den ersten fehlgeschlagenen Test, um eine bestimmte Fehlersituation zu verstehen:

py.test -x --pdb # beim ersten Fehler in die PDB fallen lassen, dann die Testsitzung beenden
py.test --pdb --maxfail=3 # Drop to PDB für die ersten drei Fehler

Beachten Sie, dass bei jedem Fehler die Ausnahmeinformationen gespeichert werden auf sys.last_value,
sys.last_type und sys.last_traceback. Im interaktiven Einsatz ermöglicht dies den Einstieg in
Postmortem-Debugging mit jedem Debug-Tool. Man kann auch manuell auf die Ausnahme zugreifen
Informationen, zum Beispiel:

>>> System importieren
>>> sys.last_traceback.tb_lineno
42
>>> sys.last_value
AssertionError('Ergebnis bestätigen == "ok"',)

RAHMEN A HALTSPUNKT / AKA SET_TRACE()


Wenn Sie einen Haltepunkt setzen möchten und die pdb.set_trace() Sie können einen Helfer verwenden:

pytest importieren
def test_funktion():
...
pytest.set_trace() # PDB Debugger und Tracing aufrufen

Vor pytest Version 2.0.0 konnten Sie nur eingeben PDB Tracing, wenn Sie die Aufnahme deaktiviert haben
auf der Kommandozeile über py.test -s. In späteren Versionen deaktiviert pytest automatisch seine
Ausgabe-Capture, wenn Sie eintreten PDB Verfolgung:

· Die Ausgabeerfassung in anderen Tests ist nicht betroffen.

· Alle vorherigen Testausgaben, die bereits erfasst wurden und als solche verarbeitet werden.

· Jede spätere Ausgabe, die innerhalb desselben Tests erzeugt wird, wird nicht erfasst und stattdessen erhalten
direkt gesendet an sys.stdout. Beachten Sie, dass dies auch für auftretende Testausgaben gilt
nachdem Sie die interaktive Seite verlassen haben PDB Tracing-Sitzung und fahren Sie mit dem regulären Test fort
laufen.

Seit pytest Version 2.4.0 können Sie auch das native Python verwenden importieren pdb;pdb.set_trace()
ruf zum eintreten PDB Nachverfolgung, ohne die pytest.set_trace() Wrapper oder
Deaktivieren Sie explizit die Ausgabeerfassung von pytest über py.test -s.

PROFILIERUNG TESTEN EXECUTION DAUER & GEHDISTANZ


So erhalten Sie eine Liste der langsamsten 10 Testdauern:

py.test --durations=10

ERSTELLEN JUNITXML FORMAT DATEIEN


Um Ergebnisdateien zu erstellen, die von gelesen werden können Hudson oder andere Continuous Integration
Server, verwenden Sie diesen Aufruf:

py.test --junitxml=Pfad

um eine XML-Datei zu erstellen unter Weg.

record_xml_property
Neu in Version 2.8.

Wenn Sie zusätzliche Informationen für einen Test protokollieren möchten, können Sie das record_xml_property
Vorrichtung:

def test_function(record_xml_property):
record_xml_property("example_key", 1)
0 behaupten

Dadurch wird eine zusätzliche Eigenschaft hinzugefügt example_key="1" zu den generierten Testfall tag:







WARNUNG:
Dies ist eine experimentelle Funktion, und ihre Benutzeroberfläche könnte durch etwas mehr ersetzt werden
leistungsstark und allgemein in zukünftigen Versionen. Die Funktionalität an sich bleibt erhalten,
aber.

Derzeit funktioniert es nicht, wenn es mit dem verwendet wird pytest-xdist plugin.

Beachten Sie auch, dass die Verwendung dieser Funktion jede Schema-Überprüfung unterbricht. Dies
kann bei einigen CI-Servern ein Problem darstellen.

ERSTELLEN ERGEBNISLOG FORMAT DATEIEN


Um maschinenlesbare Ergebnisdateien im Klartext zu erstellen, können Sie Folgendes ausgeben:

py.test --resultlog=Pfad

und schau dir den Inhalt an Weg Lage. Solche Dateien werden zB von der PyPy-Test
Webseite, um Testergebnisse über mehrere Revisionen anzuzeigen.

SENDEN TESTEN BERICHT TO BESTELLEN PASTEBIN SERVICE


Erstellen a URL für jeder Test Fehler:

py.test --pastebin=fehlgeschlagen

Dadurch werden Testlaufinformationen an einen Remote-Einfügedienst gesendet und für jeden eine URL bereitgestellt
Versagen. Sie können wie gewohnt Tests auswählen oder zum Beispiel hinzufügen -x wenn du nur einen schicken willst
besonderes Versagen.

Erstellen a URL für a ganze Test Sitzung Log:

py.test --pastebin=all

Derzeit nur Einfügen in die http://bpaste.net Dienst umgesetzt wird.

DEAKTIVIEREN PLUGINS


Um das Laden bestimmter Plugins zum Zeitpunkt des Aufrufs zu deaktivieren, verwenden Sie die -p Option zusammen mit
das Präfix no:.

Beispiel: um das Laden des Plugins zu deaktivieren Arzt, die für die Ausführung von doctest . verantwortlich ist
Tests aus Textdateien, rufen Sie py.test wie folgt auf:

py.test -p no:doctest

AUFRUF PY.TEST AB PYTHON CODE


Neu in Version 2.0.

Sie können aufrufen Frage direkt aus Python-Code:

pytest.main()

Dies verhält sich so, als ob Sie "py.test" von der Befehlszeile aus aufrufen würden. Es wird nicht angehoben
Systemausgang aber stattdessen den Exitcode zurückgeben. Sie können Optionen und Argumente übergeben:

pytest.main(['-x', 'mytestdir'])

oder übergeben Sie einen String:

pytest.main("-x mytestdir")

Sie können zusätzliche Plugins angeben, um pytest.main:

# Inhalt von myinvoke.py
pytest importieren
Klasse MyPlugin:
def pytest_sessionfinish(selbst):
print("*** Testlaufbericht Abschluss")

pytest.main("-qq", plugins=[MyPlugin()])

Das Ausführen wird das zeigen Mein Plugin wurde hinzugefügt und sein Hook aufgerufen:

$ python myinvoke.py
*** Abschluss des Testlaufberichts

Nutzen Sie py.test online über die Dienste von onworks.net


Kostenlose Server & Workstations

Laden Sie Windows- und Linux-Apps herunter

Linux-Befehle

Ad