นี่คือคำสั่ง py.test ที่สามารถเรียกใช้ในผู้ให้บริการโฮสต์ฟรีของ OnWorks โดยใช้เวิร์กสเตชันออนไลน์ฟรีของเรา เช่น Ubuntu Online, Fedora Online, โปรแกรมจำลองออนไลน์ของ Windows หรือโปรแกรมจำลองออนไลน์ของ MAC OS
โครงการ:
ชื่อ
pytest - การใช้งาน pytest
โทร PY.TEST ผ่าน ไพทอน -M PY.TEST
ใหม่ในเวอร์ชัน 2.0
หากคุณใช้ Python-2.5 หรือใหม่กว่า คุณสามารถเรียกใช้การทดสอบผ่านตัวแปล Python จาก
บรรทัดคำสั่ง:
หลาม -m pytest [...]
ซึ่งเทียบเท่ากับการเรียกใช้สคริปต์บรรทัดคำสั่ง py.test [ ... ] โดยตรง.
การเดินทาง ช่วยด้วย ON รุ่น ทางเลือกที่ ชื่อ และพวกเรา ตัวแปร
py.test --version # แสดงตำแหน่งที่นำเข้า pytest จาก
py.test --fixtures # แสดงอาร์กิวเมนต์ของฟังก์ชันบิวด์อินที่มีอยู่
py.test -h | --help # แสดงวิธีใช้บนบรรทัดคำสั่งและตัวเลือกไฟล์กำหนดค่า
หยุด หลัง DIE FIRST (หรือ N) ความล้มเหลว
หากต้องการหยุดกระบวนการทดสอบหลังจากเกิดความล้มเหลวครั้งแรก (N) ให้ทำดังนี้
py.test -x # หยุดหลังจากความล้มเหลวครั้งแรก
py.test --maxfail=2 # หยุดหลังจากเกิดความล้มเหลวสองครั้ง
การระบุ ทดสอบ / การเลือก ทดสอบ
ตัวเลือกการทดสอบการทำงานหลายอย่าง:
py.test test_mod.py # เรียกใช้การทดสอบในโมดูล
py.test somepath # เรียกใช้การทดสอบทั้งหมดด้านล่าง somepath
py.test -k stringexpr # เรียกใช้การทดสอบด้วยชื่อที่ตรงกับ .เท่านั้น
# "นิพจน์สตริง" เช่น "MyClass ไม่ใช่เมธอด"
# จะเลือก TestMyClass.test_something
# แต่ไม่ใช่ TestMyClass.test_method_simple
py.test test_mod.py::test_func # เรียกใช้การทดสอบที่ตรงกับ "node ID" เท่านั้น
# เช่น "test_mod.py::test_func" จะเลือก
# เฉพาะ test_func ใน test_mod.py
py.test test_mod.py::TestClass::test_method # เรียกใช้เมธอดเดียวใน
#ชั้นเดียว
นำเข้า 'pkg' และใช้ตำแหน่งระบบไฟล์เพื่อค้นหาและเรียกใช้การทดสอบ:
py.test --pyargs pkg # เรียกใช้การทดสอบทั้งหมดที่อยู่ด้านล่างไดเรกทอรีของ pypkg
กำลังแก้ไข ไพทอน ตรวจสอบย้อนกลับ พิมพ์
ตัวอย่างสำหรับการแก้ไขการพิมพ์แบบย้อนกลับ:
py.test --showlocals # แสดงตัวแปรท้องถิ่นในการติดตาม
py.test -l # แสดงตัวแปรท้องถิ่น (ทางลัด)
py.test --tb=long # การจัดรูปแบบการติดตามข้อมูลเริ่มต้น
py.test --tb=native # การจัดรูปแบบไลบรารีมาตรฐานของ Python
py.test --tb=short # รูปแบบการติดตามที่สั้นกว่า
py.test --tb=line # เพียงหนึ่งบรรทัดต่อความล้มเหลว
ลดต่ำลง TO PDB (ไพทอน ดีบักเกอร์) ON ความล้มเหลว
Python มาพร้อมกับดีบักเกอร์ Python ในตัวที่เรียกว่า PDB. ไพเทสต์ อนุญาตให้หนึ่งหล่นลงใน
PDB พร้อมท์ผ่านตัวเลือกบรรทัดคำสั่ง:
py.test --pdb
สิ่งนี้จะเรียกใช้ดีบักเกอร์ Python ในทุกความล้มเหลว บ่อยครั้งที่คุณอาจต้องการทำเท่านั้น
สำหรับการทดสอบล้มเหลวครั้งแรกเพื่อทำความเข้าใจสถานการณ์ความล้มเหลวบางอย่าง:
py.test -x --pdb # ปล่อยไปที่ PDB เมื่อเกิดความล้มเหลวครั้งแรก จากนั้นสิ้นสุดเซสชันการทดสอบ
py.test --pdb --maxfail=3 # วางไปที่ PDB สำหรับความล้มเหลวสามครั้งแรก
โปรดทราบว่าในความล้มเหลวใด ๆ ข้อมูลข้อยกเว้นจะถูกเก็บไว้บน sys.last_value,
sys.last_type และ sys.last_traceback. ในการใช้งานแบบอินเทอร์แอกทีฟ จะทำให้สามารถเข้าไปที่
การดีบักชันสูตรพลิกศพด้วยเครื่องมือแก้ไขข้อบกพร่องใดๆ คุณสามารถเข้าถึงข้อยกเว้นได้ด้วยตนเอง
ข้อมูล เช่น
>>>นำเข้าsys
>>> sys.last_traceback.tb_lineno
42
>>> sys.last_value
AssertionError('ยืนยันผลลัพธ์ == "ตกลง"',)
การตั้งค่า A เบรกพอยต์ / AKA SET_TRACE()
หากคุณต้องการตั้งค่าเบรกพอยต์และป้อน pdb.set_trace() คุณสามารถใช้ตัวช่วย:
นำเข้า pytest
def test_function ():
...
pytest.set_trace () # เรียกใช้ตัวดีบัก PDB และการติดตาม
ก่อนหน้า pytest เวอร์ชัน 2.0.0 คุณสามารถ enter ได้เท่านั้น PDB ติดตามหากคุณปิดใช้งานการจับภาพ
บนบรรทัดคำสั่ง via py.test -s. ในเวอร์ชันที่ใหม่กว่า pytest จะปิดการทำงานโดยอัตโนมัติ
จับภาพเอาต์พุตเมื่อคุณป้อน PDB ติดตาม:
· การจับเอาต์พุตในการทดสอบอื่นจะไม่ได้รับผลกระทบ
· ผลการทดสอบใดๆ ก่อนหน้านี้ที่ถูกจับแล้วและจะถูกประมวลผลในลักษณะดังกล่าว
· ผลลัพธ์ใดๆ ที่เกิดขึ้นภายหลังจากการทดสอบเดียวกันจะไม่ถูกบันทึกและจะได้รับ . แทน
ส่งตรงถึง sys.stdout. โปรดทราบว่าสิ่งนี้ถือเป็นจริงแม้สำหรับผลการทดสอบที่เกิดขึ้น
หลังจากที่คุณออกจากการโต้ตอบ PDB ติดตามเซสชั่นและดำเนินการต่อด้วยการทดสอบปกติ
การทำงาน
ตั้งแต่ pytest เวอร์ชัน 2.4.0 คุณสามารถใช้ Python . ดั้งเดิมได้ นำเข้า pdb;pdb.set_trace()
โทรเข้ามา PDB ติดตามโดยไม่ต้องใช้ pytest.set_trace() กระดาษห่อหรือ
ปิดใช้งานการจับเอาต์พุตของ pytest อย่างชัดเจนผ่าน py.test -s.
โปรไฟล์ ทดสอบ การดำเนินการ DURATION
วิธีรับรายการระยะเวลาการทดสอบ 10 รายการที่ช้าที่สุด:
py.test --ระยะเวลา = 10
การสร้าง JUNITXML FORMAT ไฟล์
เพื่อสร้างไฟล์ผลลัพธ์ที่สามารถอ่านได้โดย ฮัดสัน หรือการบูรณาการอย่างต่อเนื่องอื่นๆ
เซิร์ฟเวอร์ ใช้การเรียกนี้:
py.test --junitxml=เส้นทาง
เพื่อสร้างไฟล์ XML ที่ เส้นทาง.
บันทึก_xml_property
ใหม่ในเวอร์ชัน 2.8
หากคุณต้องการบันทึกข้อมูลเพิ่มเติมสำหรับการทดสอบ คุณสามารถใช้ บันทึก_xml_property
ประจำ:
def test_function (บันทึก xml_property):
record_xml_property("example_key", 1)
ยืนยัน 0
สิ่งนี้จะเพิ่มคุณสมบัติพิเศษ example_key="1" สู่การสร้าง กรณีทดสอบ แท็ก:
คำเตือน:
นี่เป็นคุณลักษณะทดลอง และอินเทอร์เฟซอาจถูกแทนที่ด้วยอย่างอื่น
ทรงพลังและทั่วถึงในเวอร์ชันต่อๆ ไป ฟังก์ชั่นต่อ se จะถูกเก็บไว้
อย่างไรก็ตาม
ปัจจุบันใช้งานไม่ได้เมื่อใช้ร่วมกับ pytest-xdist.pytest-xdist ปลั๊กอิน
นอกจากนี้ โปรดทราบว่าการใช้คุณลักษณะนี้จะทำลายการตรวจสอบสคีมาใดๆ นี้
อาจมีปัญหาเมื่อใช้กับเซิร์ฟเวอร์ CI บางตัว
การสร้าง ผลการค้นหา FORMAT ไฟล์
ในการสร้างไฟล์ผลลัพธ์ที่เครื่องอ่านข้อความธรรมดาได้ คุณสามารถออก:
py.test --resultlog=เส้นทาง
และดูเนื้อหาที่ เส้นทาง ที่ตั้ง. ไฟล์ดังกล่าวถูกใช้โดย the PyPy-ทดสอบ
หน้าเว็บเพื่อแสดงผลการทดสอบในการแก้ไขหลายๆ ครั้ง
การส่ง ทดสอบ รายงาน TO ออนไลน์ พาสต้าบิน บริการ
การสร้าง a URL สำหรับ แต่ละ ทดสอบ ความล้มเหลว:
py.test --pastebin=ล้มเหลว
การดำเนินการนี้จะส่งข้อมูลการทดสอบรันไปยังบริการ Paste ระยะไกลและระบุ URL สำหรับแต่ละ
ความล้มเหลว. คุณสามารถเลือกการทดสอบตามปกติหรือเพิ่มเช่น -x ถ้าคุณต้องการส่งเพียงอันเดียว
ความล้มเหลวโดยเฉพาะ
การสร้าง a URL สำหรับ a ทั้งหมด ทดสอบ เซสชั่น เข้าสู่ระบบ:
py.test --pastebin=ทั้งหมด
กำลังวางเฉพาะใน http://bpaste.net มีการใช้บริการ
ปิดการใช้งาน PLUGINS
หากต้องการปิดใช้งานการโหลดปลั๊กอินเฉพาะในเวลาที่เรียกใช้ ให้ใช้ปุ่ม -p ตัวเลือกร่วมกับ
คำนำหน้า ไม่:.
ตัวอย่าง: เพื่อปิดการใช้งานการโหลดปลั๊กอิน ปริญญาเอกซึ่งมีหน้าที่ดำเนินการ doctest
ทดสอบจากไฟล์ข้อความ เรียกใช้ py.test ดังนี้:
py.test -p ไม่:doctest
โทร PY.TEST จาก ไพทอน รหัส
ใหม่ในเวอร์ชัน 2.0
คุณสามารถเรียกใช้ ไพเทสต์ จากรหัส Python โดยตรง:
pytest.main()
การดำเนินการนี้เหมือนกับว่าคุณจะเรียก "py.test" จากบรรทัดคำสั่ง มันจะไม่ยก
SystemExit แต่ส่งคืนรหัสทางออกแทน คุณสามารถส่งผ่านตัวเลือกและอาร์กิวเมนต์:
pytest.main(['-x', 'mytestdir'])
หรือส่งผ่านสตริง:
pytest.main("-x mytestdir")
คุณสามารถระบุปลั๊กอินเพิ่มเติมเพื่อ pytest.main:
# เนื้อหาของ myinvoke.py
นำเข้า pytest
คลาส MyPlugin:
def pytest_sessionfinish(ตัวเอง):
print("*** ทดสอบการทำงานการรายงานเสร็จสิ้น")
pytest.main("-qq", plugins=[MyPlugin()])
วิ่งก็จะแสดงว่า ปลั๊กอินของฉัน ถูกเพิ่มเข้ามาและขอเกี่ยว:
$ หลาม myinvoke.py
*** ทดสอบการทำงานการรายงานเสร็จสิ้น
ใช้ py.test ออนไลน์โดยใช้บริการ onworks.net