ฉันคิดว่าคุณไม่ต้องการซ่อนคำเตือนทั้งหมด แต่เป็นเพียงคำเตือนที่ไม่เกี่ยวข้อง และในกรณีนี้คำเตือนการปรับเปลี่ยนจากโมดูล python ที่นำเข้า
การอ่านเอกสาร pytest เกี่ยวกับการจับคำเตือน :
ทั้งอ็อพชันบรรทัดคำสั่ง -W และอ็อพชัน filterwarnings ini ขึ้นอยู่กับอ็อพชัน -Wและคำเตือนของ Python เองดังนั้นโปรดดูส่วนเหล่านั้นในเอกสาร Python สำหรับตัวอย่างอื่น ๆ และการใช้งานขั้นสูง
ดังนั้นคุณสามารถกรองคำเตือนด้วย python's -W
ตัวเลือก !
ดูเหมือนว่าpytest
จะลบตัวกรองออกอย่างสมบูรณ์เนื่องจากแสดงสิ่งเหล่านั้นทั้งหมดDeprecationWarning
เมื่อทำงานและเอกสารของ Python เกี่ยวกับตัวกรองคำเตือนเริ่มต้นระบุไว้อย่างชัดเจนว่า:
ในการสร้างรุ่นปกติตัวกรองคำเตือนเริ่มต้นมีรายการต่อไปนี้ (ตามลำดับความสำคัญ):
default::DeprecationWarning:__main__
ignore::DeprecationWarning
ignore::PendingDeprecationWarning
ignore::ImportWarning
ignore::ResourceWarning
ดังนั้นในกรณีของคุณหากคุณต้องการให้พูดกรองประเภทของคำเตือนที่คุณต้องการละเว้นเช่นคำเตือนเหล่านั้นDeprecationWarning
ให้เรียกใช้คำสั่ง pytest ด้วย-W
ตัวเลือก:
$ pytest path-to-test-folder -W ignore::DeprecationWarning
แก้ไข : จากความคิดเห็นของcoliniเป็นไปได้ที่จะกรองตามโมดูล ตัวอย่างการละเว้นคำเตือนการเลิกใช้งานจาก sqlalchemy ทั้งหมด:
ignore::DeprecationWarning:sqlalchemy.*:
จากนั้นคุณสามารถแสดงรายการโมดูลที่ติดตั้งซึ่งสร้างสัญญาณรบกวนมากเกินไปในเอาต์พุตของไฟล์ pytest
ใช้กับไฟล์มากกว่าในบรรทัดคำสั่ง:
คุณอาจต้องการแสดงรายการตัวกรองเหล่านั้นในไฟล์ pytest.ini:
[pytest]
filterwarnings =
ignore::DeprecationWarning