Pytest'in TestSomething adlı bir sınıfı yok sayması nasıl sağlanır? [çiftleme]
TestSomething
Elbette adlandırılmış sınıflara sahip bir tür test çerçevesi üzerinde çalışıyorum . Ve testlerimin başarısız olduğunu fark ettim çünkü pytest bu sınıfları içe aktarılır aktarılmaz "başlatmam ve çalıştırmam gereken bir şey!" Olarak görüyor. Ve bu kesinlikle işe yaramayacak.
import pytest
from package import TestSomethingClass
Böyle bir sınıfı doğrudan bir pytest test dosyasından içe aktarmak mümkün müdür? Yoksa bunları bir fikstür aracılığıyla dolaylı olarak mı kullanmalıyım?
Aynı sorun istisnalar için de geçerlidir, çünkü benzer bir şey yapmam gerekecek
with pytest.raises(TestsSomethingError):
Yanıtlar
Açıkça Devre Dışı Bırak
Pytest'in bu belirli sınıfı, kelimeden başlayarak Test
, __test__
bayrağı False
çatışan sınıfınızın içine ayarlayarak yok saymasına izin verebilirsiniz.
class TestSomethingClass(object):
__test__ = False
def test_class_something(self, object):
pass
özellik: https://github.com/pytest-dev/pytest/pull/1561
Yapılandırma Dosyası
Ayrıca pytest.ini
dosyanızdaki kuralı tamamen değiştirebilir ve sözcüğü başlatan tüm sınıf adlarını yok sayabiliriz Example
. Ancak, potansiyel olarak yolun sonunda istenmeyen sonuçlarla karşılaşabileceğimiz için bunu tavsiye etmiyorum.
#pytest.ini file
[pytest]
python_classes = !Example
Pytest Kuralları
önekli test işlevlerini veya sınıfın dışındaki yöntemleri test edin
Önekli test işlevlerini veya yöntemlerini test edin Önekli test sınıflarını test edin ( başlatma yöntemi olmadan )
Kaynak: https://docs.pytest.org/en/stable/customize.html