คำถามติดแท็ก pytest

การทดสอบแบบไม่ใช้หม้อต้มที่มีประสิทธิภาพอย่างง่ายด้วย Python โปรดเพิ่มแท็ก "python" สำหรับคำถามที่ติดแท็ก "pytest" ด้วย

7
วิธีการเยาะเย้ยทรัพย์สินแบบอ่านอย่างเดียวด้วยการเยาะเย้ย?
คุณล้อเลียนทรัพย์สินแบบอ่านอย่างเดียวด้วยการเยาะเย้ยได้อย่างไร? ฉันเหนื่อย: setattr(obj.__class__, 'property_to_be_mocked', mock.Mock()) แต่ปัญหาคือมันใช้กับทุกอินสแตนซ์ของชั้นเรียน ... ซึ่งทำให้การทดสอบของฉันแตก คุณมีความคิดอื่น ๆ อีกไหม? ฉันไม่ต้องการเยาะเย้ยวัตถุเต็มเฉพาะคุณสมบัติเฉพาะนี้

8
จะบอก py.test ให้ข้ามไดเรกทอรีบางอย่างได้อย่างไร?
ฉันพยายามใช้norecursedirsตัวเลือกใน setup.cfg เพื่อบอก py.test ว่าอย่ารวบรวมการทดสอบจากไดเรกทอรีบางอย่าง แต่ดูเหมือนว่ามันจะเพิกเฉย [tool:pytest] norecursedirs=lib/third เมื่อฉันเรียกใช้py.testฉันเห็นว่ามันได้รับการทดสอบจากภายในlib/third!

6
ฉันจะปิดการทดสอบโดยใช้ pytest ได้อย่างไร
สมมติว่าฉันมีการทดสอบมากมาย: def test_func_one(): ... def test_func_two(): ... def test_func_three(): ... มีมัณฑนากรหรือสิ่งที่คล้ายกันที่ฉันสามารถเพิ่มลงในฟังก์ชันเพื่อป้องกันไม่ให้pytestเรียกใช้การทดสอบนั้นได้หรือไม่? ผลลัพธ์อาจมีลักษณะคล้าย ... @pytest.disable() def test_func_one(): ... def test_func_two(): ... def test_func_three(): ...
88 python  testing  pytest 

1
nose vs pytest - อะไรคือความแตกต่าง (ส่วนตัว) ที่ควรทำให้ฉันเลือก [ปิด]
ปิด . คำถามนี้เป็นคำถามความคิดเห็นตาม ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบได้ด้วยข้อเท็จจริงและการอ้างอิงโดยแก้ไขโพสต์นี้ ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันได้เริ่มทำงานกับโปรเจ็กต์ Python ที่ค่อนข้างใหญ่ (มัลติเธรด) พร้อมการทดสอบ (หน่วย) มากมาย ปัญหาที่สำคัญที่สุดคือการเรียกใช้แอปพลิเคชันต้องใช้สภาพแวดล้อมที่กำหนดไว้ล่วงหน้าซึ่งดำเนินการโดยผู้จัดการบริบท จนถึงตอนนี้เราได้ใช้โปรแกรมวิ่งทดสอบหน่วยเวอร์ชันที่ได้รับการแก้ไขแล้วซึ่งจะเรียกใช้การทดสอบภายในตัวจัดการนี้ แต่ไม่อนุญาตให้สลับบริบทระหว่างโมดูลทดสอบต่างๆ ทั้งจมูกและ pytest สนับสนุนสิ่งนี้เนื่องจากรองรับการติดตั้งที่รายละเอียดต่างๆดังนั้นเราจึงกำลังมองหาการเปลี่ยนไปใช้จมูกหรือ pytest ไลบรารีทั้งสองนี้ยังรองรับการทดสอบ 'การแท็ก' และเรียกใช้เฉพาะส่วนย่อยที่ติดแท็กเหล่านี้ซึ่งเป็นสิ่งที่เราต้องการทำเช่นกัน ฉันได้ดูเอกสารของทั้ง nose และ pytest เล็กน้อยและเท่าที่ฉันเห็นส่วนที่ใหญ่กว่าของไลบรารีเหล่านั้นสนับสนุนฟังก์ชันการทำงานเดียวกันเป็นหลักยกเว้นว่าอาจมีชื่อแตกต่างกันหรือต้องการไวยากรณ์ที่แตกต่างกันเล็กน้อย นอกจากนี้ฉันสังเกตเห็นความแตกต่างเล็กน้อยในปลั๊กอินที่มีอยู่ (จมูกมีการสนับสนุนหลายกระบวนการเช่น pytest ดูเหมือนจะไม่) ดูเหมือนว่าปีศาจจะอยู่ในรายละเอียดซึ่งหมายถึง (อย่างน้อยที่สุด) ด้วยรสนิยมส่วนตัวและเราควรไปกับห้องสมุดที่เหมาะกับรสนิยมส่วนตัวของเราที่สุด ดังนั้นฉันจะขอการโต้แย้งโดยอัตวิสัยว่าทำไมฉันควรใช้จมูกหรือ pytest เพื่อเลือกคอมโบห้องสมุด / ชุมชนที่เหมาะกับความต้องการของเรามากที่สุด
85 python  pytest  nose 

3
TypeError: attrib () มีอาร์กิวเมนต์คำหลักที่ไม่คาดคิด 'แปลง'
ข้อผิดพลาดนี้เกิดขึ้นระหว่างการทดสอบโครงการหลามบนเซิร์ฟเวอร์ CI โดยpytestอัตโนมัติ pytest==4.0.2ฉันใช้ ข้อผิดพลาดนี้เพิ่งเกิดขึ้นเท่านั้นท่อส่งก่อนหน้านี้ดูเหมือนจะทำงานได้ดี ข้อผิดพลาดแบบเต็ม: File "/usr/local/lib/python3.7/site-packages/_pytest/tmpdir.py", line 35, in TempPathFactory lambda p: Path(os.path.abspath(six.text_type(p))) TypeError: attrib() got an unexpected keyword argument 'convert'
55 python  pytest 

4
เป็นไปได้หรือไม่ที่จะเปลี่ยนพฤติกรรมคำสั่งยืนยันของ PyTest ใน Python
ฉันกำลังใช้คำสั่งยืนยันงูหลามเพื่อให้ตรงกับพฤติกรรมที่เกิดขึ้นจริงและที่คาดหวัง ฉันไม่สามารถควบคุมสิ่งเหล่านี้ได้ราวกับว่ามีกรณีทดสอบข้อผิดพลาดเกิดขึ้น ฉันต้องการควบคุมข้อผิดพลาดในการยืนยันและต้องการกำหนดว่าฉันต้องการยกเลิกการทดสอบเมื่อล้มเหลวในการยืนยันหรือไม่ นอกจากนี้ฉันต้องการเพิ่มบางอย่างเช่นหากมีข้อผิดพลาดในการยืนยันแล้วกรณีทดสอบควรหยุดชั่วคราวและผู้ใช้สามารถกลับมาทำงานได้ตลอดเวลา ฉันไม่มีความคิดใด ๆ วิธีการทำเช่นนี้ ตัวอย่างรหัสเราใช้ pytest ที่นี่ import pytest def test_abc(): a = 10 assert a == 10, "some error message" Below is my expectation เมื่อ assert โยน assertionError ฉันควรมีตัวเลือกในการหยุด testcase และสามารถดีบักและดำเนินการต่อในภายหลัง สำหรับการหยุดชั่วคราวและดำเนินการต่อฉันจะใช้tkinterโมดูล ฉันจะทำหน้าที่ยืนยันดังนี้ import tkinter import tkinter.messagebox top = tkinter.Tk() def _assertCustom(assert_statement, pause_on_fail = 0): #assert_statement …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.