Burun Testi - Çerçeve
Burun projesi bir yıl sonra 2005'te yayınlandı py.testmodern görünümüne kavuştu. Jason Pellerin tarafından, py.test'in öncülüğünü yaptığı aynı test deyimlerini desteklemek için yazılmıştır, ancak kurulumu ve bakımı daha kolay bir pakette.
nose modül pip yardımcı programı yardımıyla kurulabilir
pip install nose
Bu, burun modülünü mevcut Python dağıtımına ve bir nosetest.exe'ye yükleyecektir, bu da testin –m anahtarının yanı sıra bu yardımcı program kullanılarak çalıştırılabileceği anlamına gelir.
C:\python>nosetests –v test_sample.py
Or
C:\python>python –m nose test_sample.py
nose test toplar unittest.TestCaseelbette alt sınıflar. Unittest.TestCase'in alt sınıfları olmayan test sınıflarının yanı sıra basit test fonksiyonları da yazabiliriz. Burun ayrıca zamanlı testler yazmak, istisnaları test etmek ve diğer yaygın kullanım durumları için bir dizi yararlı işlev sunar.
nosetestleri otomatik olarak toplar. Test senaryolarını test paketlerine manuel olarak toplamanıza gerek yoktur. Testleri çalıştırmak duyarlıdır, çünkünose ilk test modülü yüklenir yüklenmez testleri çalıştırmaya başlar.
Birim test modülünde olduğu gibi, nose paket, modül, sınıf ve test senaryosu seviyesinde armatürleri destekler, böylece pahalı başlatma mümkün olduğunca seyrek yapılabilir.
Temel Kullanım
Nosetest.py'yi daha önce kullanılan betiğe benzer düşünelim -
# content of nosetest.py
def func(x):
return x + 1
def test_answer():
assert func(3) == 5
Yukarıdaki testi çalıştırmak için aşağıdaki komut satırı sözdizimini kullanın -
C:\python>nosetests –v nosetest.py
Konsolda görüntülenen çıktı aşağıdaki gibi olacaktır -
nosetest.test_answer ... FAIL
================================================================
FAIL: nosetest.test_answer
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Python34\lib\site-packages\nose\case.py", line 198, in runTest
self.test(*self.arg)
File "C:\Python34\nosetest.py", line 6, in test_answer
assert func(3) == 5
AssertionError
----------------------------------------------------------------------
Ran 1 test in 0.000s
FAILED (failures = 1)
nose kullanılarak DocTest ile entegre edilebilir with-doctest athe bove komut satırındaki seçenek.
\nosetests --with-doctest -v nosetest.py
Kullanabilirsin nose bir test komut dosyasında -
import nose
nose.main()
Test komut dosyasının başarı durumunda 0 ve başarısızlık durumunda 1 ile çıkmasını istemiyorsanız (unittest.main gibi), bunun yerine nose.run () kullanın -
import nose
result = nose.run()
Test çalıştırması başarılı olursa sonuç doğru, başarısız olursa veya yakalanmamış bir istisna ortaya çıkarsa yanlış olacaktır.
nosepaket, modül, sınıf ve test düzeyinde armatürleri (kurulum ve sökme yöntemleri) destekler. Py.test veya unittest fikstürlerinde olduğu gibi, kurulum her zaman herhangi bir testten (veya test paketleri ve modülleri için testler toplamasından) önce çalışır; Test çalıştırmasının durumuna bakılmaksızın kurulum başarıyla tamamlanırsa sökme işlemi çalışır.