ฉันพยายามใช้norecursedirs
ตัวเลือกใน setup.cfg เพื่อบอก py.test ว่าอย่ารวบรวมการทดสอบจากไดเรกทอรีบางอย่าง แต่ดูเหมือนว่ามันจะเพิกเฉย
[tool:pytest]
norecursedirs=lib/third
เมื่อฉันเรียกใช้py.test
ฉันเห็นว่ามันได้รับการทดสอบจากภายในlib/third
!
ฉันพยายามใช้norecursedirs
ตัวเลือกใน setup.cfg เพื่อบอก py.test ว่าอย่ารวบรวมการทดสอบจากไดเรกทอรีบางอย่าง แต่ดูเหมือนว่ามันจะเพิกเฉย
[tool:pytest]
norecursedirs=lib/third
เมื่อฉันเรียกใช้py.test
ฉันเห็นว่ามันได้รับการทดสอบจากภายในlib/third
!
pytest
มาจาก logilab py.test
คุณต้องการ
nosecuredirs=lib/third/*
[pytest] norecursedirs = resources
ในpytest.ini
เคล็ดลับ! 💪
คำตอบ:
py.test --ignore=somedir
ทำงานให้ฉัน
--ignore
สามารถระบุได้หลายครั้งเพื่อละเว้นหลายไดเรกทอรี
-k
ตัวเลือกนี้เป็นคำตอบอื่นที่แสดงด้านล่าง โปรดดูที่ "การทดสอบเรียกใช้โดยการแสดงออกทางคำว่า" ในdocs.pytest.org/en/latest/... เครื่องหมายอาจเป็นประโยชน์เช่นกัน ทำเครื่องหมายการทดสอบของคุณเป็น "ช้า" ฯลฯ และจากนั้นใช้-k "not slow"
--ignore-glob
เพื่อละเว้นเส้นทางไฟล์ทดสอบโดยใช้สัญลักษณ์ตัวแทนแบบเชลล์ของ Unix เช่น--ignore-glob=**/sandbox/*
จะละเว้นไฟล์ทั้งหมดในsandbox
โฟลเดอร์ใด ๆ
หากคุณมีหลายไดเรกทอรีที่มีผู้ปกครองต่างกันคุณสามารถระบุ--ignore
พารามิเตอร์ต่างๆได้:
py.test --ignore=somedir --ignore=otherdir --ignore=etcdir
- ตัวเลือกใหม่: --ignore จะป้องกันเส้นทางที่ระบุจากการรวบรวม
สามารถระบุได้หลายครั้ง
ฉันจะแก้ไขปริศนา: ถ้าส่วน pytest พบในหนึ่งใน config ไฟล์ที่เป็นไปได้ ( pytest.ini
, tox.ini
และsetup.cfg
) pytest จะไม่มองหาคนอื่น ๆ เพื่อให้แน่ใจว่าคุณกำหนดตัวเลือก py.test ในไฟล์เดียว
setup.cfg
ผมขอแนะนำให้ใช้
.ini
pytest -c pytest.ini
ด้วยเหตุผลบางประการsetup.cfg
เนื้อหาถูกหยิบขึ้นมาโดยอัตโนมัติ
คุณสามารถใช้ได้
py.test -k 'not third'
ที่ไม่รวมเนื้อหาไดเรกทอรี 'ที่สาม' ทั้งหมด
norecursedirs
ควรทำงาน. ตรวจสอบว่าคุณมีไฟล์ pytest.ini หรือไฟล์ setup.cfg อื่น ๆ หรือไม่ คุณเป็นpy.test
อย่างไรบ้าง?
setup.cfg
กับสิ่งที่เหมาะสม[pytest]
และ norecorsedirs อยู่ข้างใน แต่ดูเหมือนว่าจะถูกเพิกเฉยและจะค้นหาไฟล์ทั้งหมดแทน
ในกรณีของฉันปัญหาคือสัญลักษณ์แทนที่หายไป สิ่งต่อไปนี้ใช้ได้กับฉัน:
[tool:pytest]
norecursedirs = subpath/*
ในขณะที่norecursedirs = subpath
ไม่ได้
หากคุณใช้ setup.cfg คุณต้องใช้[tool:pytest]
ตามhttp://doc.pytest.org/en/latest/example/pythoncollection.html
# content ของ pytest.ini
# สามารถกำหนดได้ในไฟล์ tox.ini หรือ setup.cfg แม้ว่า
ชื่อsection # ในไฟล์ setup.cfg ควรเป็น "tool: pytest"
กับการใช้งานpytest.ini
(ซึ่งเป็นที่แนะนำถ้าคุณกำลังใช้tox
ซึ่งในกรณีนี้tox.ini
จะทำให้ความรู้สึก) โทรด้วยpytest
pytest -c pytest.ini
เพื่อป้องกันไม่ให้ตัวอย่างของฉันnot_me_1.py
และnot_me_2.py
จากการทดสอบหรือเป็นขุยของฉันpytest.ini
มีดังนี้:
[pytest]
addopts = --ignore-glob=not_me_*
[pycodestyle]
ignore = not_me_* ALL
py.test
และpytest
ทั้งสองคนทดสอบการวิ่งและเป็นสัตว์ร้ายที่แตกต่างกัน แปลก แต่เป็นหนึ่งล้มเหลวเพราะมันไม่ได้โหลดการยกเว้นจากpytest
[pytest]