Gömülü sistemler için python modellerini test etmek için pytest kullanıyorum. Test edilecek özellikler, platforma göre değişir. (Bu bağlamda, bir işletim sistemi türü değil, gömülü sistem tipi anlamına gelmek için 'platform' kullanıyorum).Pytest "varsayılan" işaretleyicileri destekliyor mu?
platformu türüne göre dizinlere onları ayırmaya olurdu benim testleri düzenlemenin en basit yolu. Bu hızla gibi birçok özellikleri desteklemek için zor oldu
/platform1
/platform2
/etc.
pytest/PLATFORM1 platformlarda örtüşmektedir. Daha sonra testlerimi tek bir dizine taşıdım, her bir fonksiyonel alan için testler tek bir dosya adına (test_functionalityA.py) atandı. Daha sonra, bir dosyadaki hangi sınamaların belirli bir platforma uygulanacağını göstermek için pytest işaretçileri kullanıyorum. I would aşk otomatik platform türü algılayabilir ve sadece uygun testler 'conftest' olsun ederken
@pytest.mark.all_platforms
def test_some_functionalityA1():
...
@pytest.mark.platform1
@pytest.mark.platform2
def test_some_functionlityA2():
...
, komut satırından çalıştırmak için test belirterek kendimi bırakmıştım ettik.
pytest -m "(PLATFORM1 veya all_platforms)"
Soru: (! Nihayet)
şeyler basitleştirmek ve geçirilen varsayılan olarak tüm işaretlenmemiş testleri ve ayrıca tüm testler pytest için bir yolu var mı komut satırındaki '-m' ile mi? Örneğin
: Tüm testler @ pytest.mark ile pytest.mark.all_platforms hatta tüm testlerde @ işaretli olarak testler ediyorum pytest -m "PLATFORM1"
yanı @ pytest.mark.platform1 işaretlenmiş hiç?
Paylaşılan işlevlerin büyük miktarda verildiğinde, @ pytest.mark.all_platforms satırını bırakabilmek büyük bir yardımcı olacaktır.
Bir çekicilik gibi çalıştım. Teşekkürler Holger. –
sadece diğerlerinin bildiği gibi, bu cevabın kaynağı https://pytest.org/latest/example/markers.html#marking-platform-specific-tests-with-pytest adresinden daha fazla örnek bulabilir. –