2016-08-31 19 views
8

$HOME klasöründe yapılandırma dosyaları oluşturan ve testleri yalıtılmış bir ortamda çalıştırmak için $HOMEconftest.py numaralı belgede üretken kod var. Yine de bunun genel olarak işe yarayıp yaramadığına ve belki de yazılmamış yazılı test fonksiyonlarının çıkıp çıkamayacağına emin değilim.İlk ve son kontrol pytest test paketini çalıştırırken kontrol edin

Test paketimin geçerliliğini sağlamak için $HOME numaralı telefondan ilgili dosyaların ön kontrollerini yapmak istiyorum ve test paketini çalıştırdıktan sonra son bir kez kontrol etmek istiyorum.

Bunu "resmi" pytest aracılığıyla nasıl yapabilirim? İşe yarayan ama raporları dağıtan kirli bir hack var.

Test paketim şimdi doğru ve bu soru meraktan yok çünkü pytest hakkında daha fazla bilgi edinmek istiyorum.


Ekleme: Aynı soru, ancak farklı kullanım durumunda: Ben 3. taraf eklentisi sürüm requierement fullfills olmadığını kontrol etmek istiyorum. Eğer durum böyle değilse, bir mesaj göstermek ve py.test'i durdurmak istiyorum.

+0

Testinizi çalıştırırken '$ HOME' ortam değişkenini ayarlamayı denediniz mi? Bu değişikliğin farklı işletim sistemlerinde nasıl yapılacağına dair talimatlar – Av4t4r

+0

Evet, zaten yaptığım bu. Yine de bunu aşan yanlış bir test işlevim vardı ve amacım test paketimin kendisinin doğru olmasını sağlayan bir "meta" testinin uygulanmasıdır. Benim sorum, 'pytest' özellikleri hakkında daha fazla şey öğrenmek için cuorisity. – rocksportrocker

cevap

1

Oturumla ilgili bir pytest fikstürü yazmayı düşündünüz mü? gibi bir şey: Diğer demirbaşlar her global_check devralan, o zaman initial_condition test çalışır tamamı ve final_condition başında iddia edilecektir

@pytest.fixture(scope="session") 
def global_check(request): 
    assert initial_condition 

    def final_check(request): 
     assert final_condition 

    request.addfinalizer(final_check) 

    return request 

test çalışmaların sonundaki iddia edilecektir.

+1

Böyle bir şey denedim ancak daha sonra başlangıçta bir tek mesaj + dur yerine uzun bir başarısız test fonksiyonu listesi içeren bir rapor aldım. Bu yaklaşımı 'autotest = True' ile genişlettim, dolayısıyla bu fikstürden miras almam gerekmedi. – rocksportrocker

+0

Yeterince adil. İşte ilginç bir yaklaşım: http://stackoverflow.com/a/9122053/324449 –

İlgili konular