InglesPransesEspanyol

OnWorks favicon

py.test-3 - Online sa Cloud

Patakbuhin ang py.test-3 sa OnWorks na libreng hosting provider sa Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

Ito ang command na py.test-3 na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

PROGRAMA:

NAME


pytest - paggamit ng pytest

TUMATAWAG PY.TEST-3 SA PAMAMAGITAN NG PYTHON -M PY.TEST-3


Bago sa bersyon 2.0.

Kung gumagamit ka ng Python-2.5 o mas bago maaari kang mag-invoke ng pagsubok sa pamamagitan ng Python interpreter mula sa
ang command line:

python -m pytest [...]

Ito ay katumbas ng pag-invoke ng command line script py.test-3 [...] direkta.

PAGKAKITA HELP ON VERSION, OPTION MGA PANGALAN, Kapaligiran MGA VARIABLE


py.test-3 --version # ay nagpapakita kung saan nagmula ang pytest
py.test-3 --fixtures # ipakita ang magagamit na mga argumento ng builtin na function
py.test-3 -h | --help # ipakita ang tulong sa command line at mga opsyon sa config file

PAGHihinto PAGKATAPOS ANG FIRST (O N) MGA KABIGUAN


Upang ihinto ang proseso ng pagsubok pagkatapos ng unang (N) pagkabigo:

py.test-3 -x # stop pagkatapos ng unang pagkabigo
py.test-3 --maxfail=2 # stop pagkatapos ng dalawang pagkabigo

PAGTUKOY MGA PAGSUBOK / PUMILI MGA PAGSUBOK


Maraming mga pagpipilian sa pagsubok na tumakbo:

py.test-3 test_mod.py # magpatakbo ng mga pagsubok sa module
py.test-3 somepath # patakbuhin ang lahat ng pagsubok sa ibaba ng somepath
py.test-3 -k stringexpr # nagpapatakbo lamang ng mga pagsubok na may mga pangalan na tumutugma sa
# "string expression", hal. "MyClass at hindi paraan"
# ay pipili ng TestMyClass.test_something
# ngunit hindi TestMyClass.test_method_simple
py.test-3 test_mod.py::test_func # ay nagpapatakbo lamang ng mga pagsubok na tumutugma sa "node ID",
# eg "test_mod.py::test_func" ang pipili
# lamang test_func sa test_mod.py
py.test-3 test_mod.py::TestClass::test_method # magpatakbo ng isang paraan sa
# isang klase

Mag-import ng 'pkg' at gamitin ang lokasyon ng filesystem nito upang maghanap at magpatakbo ng mga pagsubok:

py.test-3 --pyargs pkg # patakbuhin ang lahat ng pagsubok na makikita sa ibaba ng direktoryo ng pypkg

PAGBABAGO PYTHON BALIKAN MULI Pag-print


Mga halimbawa para sa pagbabago ng traceback printing:

py.test-3 --showlocals # ay nagpapakita ng mga lokal na variable sa mga traceback
py.test-3 -l # ipakita ang mga lokal na variable (shortcut)

py.test-3 --tb=long # ang default na informative traceback formatting
py.test-3 --tb=native # ang Python standard library formatting
py.test-3 --tb=short # isang mas maikling traceback na format
py.test-3 --tb=line # isang linya lamang sa bawat pagkabigo

PAGBABA SA PDB (PYTHON DEBUGGER) ON MGA KABIGUAN


Ang Python ay may kasamang builtin na Python debugger na tinatawag PDB. pytest nagbibigay-daan sa isa na bumaba sa
ang PDB prompt sa pamamagitan ng opsyon sa command line:

py.test-3 --pdb

Tatawagin nito ang Python debugger sa bawat pagkabigo. Kadalasan baka gusto mo lang gawin
ito para sa unang bagsak na pagsubok upang maunawaan ang isang tiyak na sitwasyon ng pagkabigo:

py.test-3 -x --pdb # i-drop sa PDB sa unang pagkabigo, pagkatapos ay tapusin ang sesyon ng pagsubok
py.test-3 --pdb --maxfail=3 # drop sa PDB para sa unang tatlong pagkabigo

Tandaan na sa anumang pagkabigo ang impormasyon ng pagbubukod ay naka-imbak sa sys.last_value,
sys.last_type at sys.last_traceback. Sa interactive na paggamit, ito ay nagpapahintulot sa isa na bumaba sa
postmortem debugging gamit ang anumang tool sa pag-debug. Maaari ring manu-manong i-access ng isa ang pagbubukod
impormasyon, halimbawa:

>>> import sys
>>> sys.last_traceback.tb_lineno
42
>>> sys.last_value
AssertionError('assert result == "ok"',)

PAGTATAYA A BREAKPOINT / Aka SET_TRACE()


Kung gusto mong magtakda ng breakpoint at ipasok ang pdb.set_trace() maaari kang gumamit ng isang katulong:

import pytest
def test_function():
...
pytest.set_trace() # invoke PDB debugger at tracing

Bago ang pytest na bersyon 2.0.0 maaari ka lamang pumasok PDB pagsubaybay kung hindi mo pinagana ang pagkuha
sa command line sa pamamagitan ng py.test-3 -s. Sa mga susunod na bersyon, awtomatikong hindi pinapagana ng pytest ito
pagkuha ng output kapag pumasok ka PDB pagsubaybay:

· Ang pagkuha ng output sa ibang mga pagsubok ay hindi apektado.

· Anumang naunang test output na nakuha na at ipoproseso nang ganoon.

· Anumang susunod na output na ginawa sa loob ng parehong pagsubok ay hindi kukunan at sa halip ay makukuha
direktang ipinadala sa sys.stdout. Tandaan na ito ay totoo kahit na para sa pagsubok na output na nagaganap
pagkatapos mong lumabas sa interactive PDB tracing session at magpatuloy sa regular na pagsubok
tumakbo.

Dahil pytest bersyon 2.4.0 maaari mo ring gamitin ang katutubong Python angkat pdb;pdb.set_trace()
tawag para makapasok PDB pagsubaybay nang hindi kinakailangang gamitin ang pytest.set_trace() pambalot o
tahasang hindi paganahin ang pag-capture ng output ng pytest sa pamamagitan ng py.test-3 -s.

PAG-PROFILE PAGSUBOK Pagpapatupad TAGAL


Upang makakuha ng listahan ng pinakamabagal na 10 tagal ng pagsubok:

py.test-3 --durations=10

PAGLIKHA JUNITXML FORMAT MGA FILE


Upang lumikha ng mga file ng resulta na maaaring basahin ni Hudson o iba pang Patuloy na pagsasama
mga server, gamitin ang invocation na ito:

py.test-3 --junitxml=path

upang lumikha ng isang XML file sa landas.

record_xml_property
Bago sa bersyon 2.8.

Kung gusto mong mag-log ng karagdagang impormasyon para sa isang pagsubok, maaari mong gamitin ang record_xml_property
kabit:

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

Magdaragdag ito ng karagdagang pag-aari example_key="1" sa nabuo kaso sa pagsubok mga tag:







BABALA:
Isa itong pang-eksperimentong feature, at ang interface nito ay maaaring mapalitan ng higit pa
malakas at pangkalahatan sa mga susunod na bersyon. Ang functionality per-se ay pananatilihin,
gayunpaman.

Sa kasalukuyan ay hindi ito gumagana kapag ginamit kasama ng pytest-xdist plugin.

Pakitandaan din na ang paggamit ng feature na ito ay masisira ang anumang pag-verify ng schema. Ito
maaaring maging problema kapag ginamit sa ilang mga CI server.

PAGLIKHA RESULTLOG FORMAT MGA FILE


Upang gumawa ng mga plain-text na machine-readable na mga file ng resulta maaari kang mag-isyu ng:

py.test-3 --resultlog=path

at tingnan ang nilalaman sa landas lokasyon. Ang ganitong mga file ay ginagamit hal ng PyPy-test
web page upang ipakita ang mga resulta ng pagsubok sa ilang mga rebisyon.

NAGPADALA PAGSUBOK REPORT SA ONLINE PASTEBIN SERVICE


Paglikha a URL para bawat pagsusulit pagkabigo:

py.test-3 --pastebin=failed

Magsusumite ito ng impormasyon sa pagsubok na pagpapatakbo sa isang malayuang serbisyo ng I-paste at magbibigay ng URL para sa bawat isa
kabiguan. Maaari kang pumili ng mga pagsubok gaya ng dati o magdagdag bilang halimbawa -x kung isa lang ang gusto mong ipadala
partikular na kabiguan.

Paglikha a URL para a buo pagsusulit Sesyon mag-log:

py.test-3 --pastebin=all

Kasalukuyang nagdidikit lamang sa http://bpaste.net ipinatupad ang serbisyo.

disable PLUGINS


Upang i-disable ang paglo-load ng mga partikular na plugin sa oras ng invocation, gamitin ang -p opsyon kasama ng
ang unlapi sa:.

Halimbawa: upang hindi paganahin ang paglo-load ng plugin doctest, na responsable para sa pagpapatupad ng doctest
mga pagsubok mula sa mga text file, i-invoke ang py.test-3 tulad nito:

py.test-3 -p no:doctest

TUMATAWAG PY.TEST-3 MULA SA PYTHON CODE


Bago sa bersyon 2.0.

Maaari kang mag-invoke pytest mula sa Python code nang direkta:

pytest.main()

ito ay kumikilos na parang tatawagin mo ang "py.test-3" mula sa command line. Hindi ito magtataas
SystemExit ngunit ibalik ang exitcode sa halip. Maaari mong ipasa ang mga opsyon at argumento:

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

o ipasa sa isang string:

pytest.main("-x mytestdir")

Maaari mong tukuyin ang mga karagdagang plugin sa pytest.pangunahing:

# nilalaman ng myinvoke.py
import pytest
klase MyPlugin:
def pytest_sessionfinish(self):
print("*** pagtapos ng pag-uulat sa pagsubok na tumakbo")

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

Ang pagpapatakbo nito ay magpapakita na MyPlugin ay idinagdag at ang hook nito ay tinawag:

$ python myinvoke.py
*** pagtatapos ng pag-uulat ng pagsubok

Gumamit ng py.test-3 online gamit ang mga serbisyo ng onworks.net


Mga Libreng Server at Workstation

Mag-download ng Windows at Linux apps

Linux command

Ad