Aceasta este comanda py.test-2.7 care poate fi rulată în furnizorul de găzduire gratuit OnWorks folosind una dintre multiplele noastre stații de lucru online gratuite, cum ar fi Ubuntu Online, Fedora Online, emulator online Windows sau emulator online MAC OS
PROGRAM:
NUME
pytest - utilizare pytest
APELARE PY.TEST PRIN PITON -M PY.TEST
Nou în versiunea 2.0.
Dacă utilizați Python-2.5 sau o versiune ulterioară, puteți invoca testarea prin interpretul Python de la
linia de comandă:
python -m pytest [...]
Acest lucru este echivalent cu invocarea scriptului de linie de comandă py.test [...] direct.
PRIMII AJUTOR ON VERSIUNE, OPȚIUNE NUME, MEDIUL VARIABILE
py.test --version # arată de unde a fost importat pytest
py.test --fixtures # afișează argumentele funcției încorporate disponibile
py.test -h | --help # arată ajutor pe linia de comandă și opțiunile fișierului de configurare
OPRIRE DUPA THE PRIMUL (SAU N) Eșecuri
Pentru a opri procesul de testare după primele (N) erori:
py.test -x # opriți după primul eșec
py.test --maxfail=2 # opriți după două erori
SPECIFICAREA ÎNCERCĂRI / SELECTAREA ÎNCERCĂRI
Mai multe opțiuni de testare:
py.test test_mod.py # rulați teste în modul
py.test somepath # rulează toate testele sub somepath
py.test -k stringexpr # rulează numai teste cu nume care se potrivesc cu
# „expresie șir”, de exemplu „MyClass și nu metoda”
# va selecta TestMyClass.test_something
# dar nu TestMyClass.test_method_simple
py.test test_mod.py::test_func # rulează numai teste care se potrivesc cu „ID-ul nodului”,
# de exemplu, „test_mod.py::test_func” va selecta
# doar test_func în test_mod.py
py.test test_mod.py::TestClass::test_method # rulați o singură metodă în
# o singură clasă
Importați „pkg” și utilizați locația sistemului de fișiere pentru a găsi și rula teste:
py.test --pyargs pkg # rulează toate testele găsite sub directorul pypkg
MODIFICARE PITON RUMĂRARE IMPRIMARE
Exemple pentru modificarea tipăririi traceback:
py.test --showlocals # arată variabilele locale în tracebacks
py.test -l # arată variabilele locale (comandă rapidă)
py.test --tb=long # formatarea implicită a urmăririi informative
py.test --tb=native # formatarea bibliotecii standard Python
py.test --tb=short # un format de urmărire mai scurt
py.test --tb=line # doar o linie per eșec
PĂDARE LA PPB (PITON DEBUGGER) ON Eșecuri
Python vine cu un depanator Python încorporat numit PPB. pytest permite să cadă în
il PPB prompt printr-o opțiune de linie de comandă:
py.test --pdb
Acest lucru va invoca depanatorul Python la fiecare eșec. De multe ori s-ar putea să vrei doar să faci
aceasta pentru primul test eșuat pentru a înțelege o anumită situație de eșec:
py.test -x --pdb # coboară în PDB la prima eșec, apoi încheie sesiunea de testare
py.test --pdb --maxfail=3 # treceți în PDB pentru primele trei erori
Rețineți că în cazul oricărei defecțiuni, informațiile despre excepție sunt stocate sys.last_value,
sys.last_type si sys.last_traceback. În utilizarea interactivă, acest lucru permite accesul
depanare postmortem cu orice instrument de depanare. De asemenea, se poate accesa manual excepția
informatii, de exemplu:
>>> import sys
>>> sys.last_traceback.tb_lineno
42
>>> sys.last_value
AssertionError('assert result == "ok"',)
SETARE A PUNCT DE PARURU / AKA SET_TRACE()
Dacă doriți să setați un punct de întrerupere și introduceți pdb.set_trace() poți folosi un ajutor:
import pytest
def test_function():
...
pytest.set_trace() # invocă depanatorul PDB și urmărirea
Înainte de versiunea pytest 2.0.0, puteai intra doar PPB urmărirea dacă ați dezactivat capturarea
pe linia de comandă prin py.test -s. În versiunile ulterioare, pytest îl dezactivează automat
captura de ieșire când intri PPB urmărire:
· Captarea rezultatelor în alte teste nu este afectată.
· Orice rezultat de testare anterioară care a fost deja capturat și va fi procesat ca atare.
· Orice rezultat ulterior produs în cadrul aceluiași test nu va fi capturat și va primi
trimis direct la sys.stdout. Rețineți că acest lucru este valabil chiar și pentru rezultatul de testare
după ce ieși din interactiv PPB sesiunea de urmărire și continuați cu testul obișnuit
alerga.
De la versiunea pytest 2.4.0, puteți utiliza și Pythonul nativ import pdb;pdb.set_trace()
suna pentru a intra PPB urmărirea fără a fi nevoie să utilizați pytest.set_trace() ambalaj sau
dezactivați în mod explicit capturarea ieșirii pytest prin py.test -s.
PROFILARE TEST EXECUŢIE DURATĂ
Pentru a obține o listă cu cele mai lente 10 durate de testare:
py.test --durations=10
CREAREA JUNITXML FORMAT DOSARE
Pentru a crea fișiere cu rezultate care pot fi citite de Hudson sau alte Integrare continuă
servere, utilizați această invocare:
py.test --junitxml=cale
pentru a crea un fișier XML la cale.
record_xml_property
Nou în versiunea 2.8.
Dacă doriți să înregistrați informații suplimentare pentru un test, puteți utiliza record_xml_property
fixare:
def test_function(record_xml_property):
record_xml_property(„cheie_exemplu”, 1)
afirma 0
Aceasta va adăuga o proprietate suplimentară example_key="1" la generat caz test etichetă:
AVERTISMENT:
Aceasta este o caracteristică experimentală, iar interfața sa ar putea fi înlocuită cu ceva mai mult
puternic și general în versiunile viitoare. Funcționalitatea per-se va fi păstrată,
in orice caz.
În prezent, nu funcționează atunci când este utilizat cu pytest-xdist plugin.
De asemenea, vă rugăm să rețineți că utilizarea acestei funcții va întrerupe orice verificare a schemei. Acest
ar putea fi o problemă atunci când este utilizat cu unele servere CI.
CREAREA Jurnalul rezultatelor FORMAT DOSARE
Pentru a crea fișiere cu rezultate în text simplu, care pot fi citite de mașină, puteți emite:
py.test --resultlog=cale
și uită-te la conținutul la cale Locație. Astfel de fișiere sunt utilizate, de exemplu, de către PyPy-test
pagina web pentru a afișa rezultatele testelor din mai multe revizuiri.
TRIMITERE TEST RAPORT LA ONLINE PASTEBIN SERVICIU
Crearea a URL-ul pentru fiecare test eşec:
py.test --pastebin=eșuat
Aceasta va trimite informații despre rularea de testare către un serviciu Paste de la distanță și va furniza o adresă URL pentru fiecare
eșec. Puteți selecta teste ca de obicei sau puteți adăuga, de exemplu -x daca vrei sa trimiti doar unul
eșec deosebit.
Crearea a URL-ul pentru a întreg test sesiune log:
py.test --pastebin=toate
Momentan, se lipește doar în http://bpaste.net serviciul este implementat.
DEZACTIVARE PLUGINS
Pentru a dezactiva încărcarea anumitor pluginuri la momentul invocării, utilizați -p opțiune împreună cu
prefixul nu:.
Exemplu: pentru a dezactiva încărcarea pluginului doctest, care este responsabil pentru executarea doctest
teste din fișiere text, invocați py.test astfel:
py.test -p nu:doctest
APELARE PY.TEST DIN PITON COD
Nou în versiunea 2.0.
Puteți invoca pytest direct din codul Python:
pytest.main()
aceasta acționează ca și cum ați apela „py.test” din linia de comandă. Nu se va ridica
SystemExit dar returnați codul de ieșire. Puteți transmite opțiuni și argumente:
pytest.main(['-x', 'mytestdir'])
sau treceți într-un șir:
pytest.main("-x mytestdir")
Puteți specifica pluginuri suplimentare pentru pytest.main:
# conținutul myinvoke.py
import pytest
clasa MyPlugin:
def pytest_sessionfinish(self):
print("*** s-a terminat raportul test run")
pytest.main("-qq", plugins=[MyPlugin()])
Rularea acestuia va arăta asta MyPlugin a fost adăugat și cârligul său a fost invocat:
$ python myinvoke.py
*** execuție de testare raportând finalizarea
Utilizați py.test-2.7 online folosind serviciile onworks.net