จะทำให้ pytest ละเว้นคลาสชื่อ TestSomething ได้อย่างไร? [ซ้ำ]
ฉันกำลังทำงานกับกรอบการทดสอบประเภทหนึ่งที่มีชื่อชั้นเรียนTestSomething
แน่นอน และฉันตระหนักว่าการทดสอบของฉันล้มเหลวเนื่องจาก pytest มองว่าคลาสเหล่านี้เป็น "สิ่งที่ฉันต้องการเพื่อสร้างอินสแตนซ์และเรียกใช้!" ทันทีที่นำเข้า และสิ่งนี้จะไม่ได้ผลอย่างแน่นอน
import pytest
from package import TestSomethingClass
เป็นไปได้ไหมที่จะนำเข้าคลาสดังกล่าวจากไฟล์ทดสอบ pytest โดยตรง หรือฉันควรใช้สิ่งเหล่านี้ทางอ้อมผ่านฟิกซ์เจอร์?
ปัญหาเดียวกันนี้ใช้กับข้อยกเว้นเพราะฉันต้องทำบางอย่างเช่น
with pytest.raises(TestsSomethingError):
คำตอบ
ปิดการใช้งานอย่างชัดเจน
คุณสามารถอนุญาตให้ pytest เพิกเฉยต่อคลาสเฉพาะนี้ได้โดยการเริ่มต้นด้วยคำTest
โดยตั้งค่า__test__
แฟล็กFalse
ภายในคลาสที่ขัดแย้งกันของคุณ
class TestSomethingClass(object):
__test__ = False
def test_class_something(self, object):
pass
ลักษณะเฉพาะ: https://github.com/pytest-dev/pytest/pull/1561
ไฟล์กำหนดค่า
นอกจากนี้เรายังสามารถเปลี่ยนการประชุมอย่างสมบูรณ์ในของคุณไฟล์และไม่สนใจชื่อชั้นทั้งหมดซึ่งเริ่มต้นคำว่าpytest.ini
Example
แต่ฉันไม่แนะนำสิ่งนี้เนื่องจากเราอาจพบกับผลลัพธ์ที่ไม่ได้ตั้งใจบนท้องถนน
#pytest.ini file
[pytest]
python_classes = !Example
อนุสัญญา Pytest
ทดสอบฟังก์ชันหรือวิธีการทดสอบคำนำหน้านอกชั้นเรียน
ทดสอบฟังก์ชันหรือวิธีการทดสอบคำนำหน้าในคลาสทดสอบคำนำหน้าการทดสอบ (ไม่มีวิธีการเริ่มต้น )
ที่มา: https://docs.pytest.org/en/stable/customize.html