Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen py.test-2.7 komutudur.
Program:
ADI
pytest - pytest kullanımı
ARAMA PY.TESTİ VASITASIYLA PİTON -M PY.TESTİ
2.0 sürümünde yeni.
Python-2.5 veya sonraki bir sürümünü kullanıyorsanız, Python yorumlayıcısı aracılığıyla testi şuradan başlatabilirsiniz:
komut satırı:
piton -m en iyi [...]
Bu, komut satırı komut dosyasını çağırmakla eşdeğerdir. py.testi [...] direkt olarak.
BAŞLARKEN YARDIM ET ON VERSİYON, SEÇENEK İSİMLER, ÇEVRE DEĞİŞKENLER
py.test --version #, pytest'in nereden içe aktarıldığını gösterir
py.test --fixtures # mevcut yerleşik fonksiyon argümanlarını göster
py.test -h | --help # komut satırı ve yapılandırma dosyası seçeneklerinde yardımı göster
DURDURULUYOR SONRA L' İLK (VEYA N) ARIZALAR
İlk (N) başarısızlıktan sonra test sürecini durdurmak için:
py.test -x # ilk hatadan sonra dur
py.test --maxfail=2 # iki hatadan sonra dur
BELİRTİLEN TESTLERİ / SEÇİM TESTLERİ
Birkaç test çalıştırma seçeneği:
py.test test_mod.py # modülde testleri çalıştır
py.test bazı yol # bazı yolların altındaki tüm testleri çalıştır
py.test -k stringexpr # yalnızca
# "dize ifadesi", örneğin "Sınıfım ve yöntem değil"
# TestMyClass.test_something'i seçecek
# ama TestMyClass.test_method_simple değil
py.test test_mod.py::test_func # yalnızca "düğüm kimliği" ile eşleşen testleri çalıştırın,
# örneğin "test_mod.py::test_func" seçecektir
# sadece test_func test_mod.py'de
py.test test_mod.py::TestClass::test_method # içinde tek bir yöntem çalıştır
#tek bir sınıf
'pkg' dosyasını içe aktarın ve testleri bulmak ve çalıştırmak için dosya sistemi konumunu kullanın:
py.test --pyargs pkg # pypkg dizininin altında bulunan tüm testleri çalıştır
DEĞİŞTİRME PİTON GERİ İZ BASKI
Geri izleme yazdırmayı değiştirmek için örnekler:
py.test --showlocals # geri izlemelerde yerel değişkenleri gösterir
py.test -l # yerel değişkenleri göster (kısayol)
py.test --tb=long # varsayılan bilgilendirici geri izleme biçimlendirmesi
py.test --tb=native # Python standart kitaplık biçimlendirmesi
py.test --tb=short # daha kısa bir geri izleme biçimi
py.test --tb=satır # hata başına yalnızca bir satır
DÜŞEN TO PDB (PİTON hata ayıklayıcı) ON ARIZALAR
Python adlı yerleşik bir Python hata ayıklayıcı ile birlikte gelir. PDB. Pytest birinin düşmesine izin verir
the PDB komut satırı seçeneği ile sor:
py.test --pdb
Bu, her başarısızlıkta Python hata ayıklayıcısını çağırır. Çoğu zaman sadece yapmak isteyebilirsiniz
bu, belirli bir başarısızlık durumunu anlamak için ilk başarısız test için:
py.test -x --pdb # ilk başarısızlıkta PDB'ye bırak, ardından test oturumunu sonlandır
py.test --pdb --maxfail=3 # ilk üç hata için PDB'ye bırak
Herhangi bir arıza durumunda istisna bilgilerinin depolandığına dikkat edin. sys.last_value,
sys.last_type ve sys.last_traceback. Etkileşimli kullanımda, bu, birinin içine düşmesine izin verir.
Herhangi bir hata ayıklama aracıyla ölüm sonrası hata ayıklama. İstisnaya manuel olarak da erişilebilir.
bilgi, örneğin:
>>> içe aktarma sistemi
>>> sys.last_traceback.tb_lineno
42
>>> sys.last_value
AssertionError('assert sonuç == "tamam"',)
AYARI A KIRILMA NOKTASI / AKA SET_TRACE()
Bir kesme noktası belirlemek ve pdb.set_trace() bir yardımcı kullanabilirsiniz:
pytest'i içe aktar
def test_fonksiyonu():
Kendi ID’n ile mağazalarını oluştur
pytest.set_trace() # PDB hata ayıklayıcısını ve izlemeyi çağırır
Pytest sürüm 2.0.0'dan önce yalnızca girebilirsiniz PDB yakalamayı devre dışı bıraktıysanız izleme
aracılığıyla komut satırında py.testi -s. Daha sonraki sürümlerde, pytest otomatik olarak devre dışı bırakır.
girdiğinizde çıktı yakalama PDB izleme:
· Diğer testlerde çıktı yakalama etkilenmez.
· Halihazırda yakalanmış ve bu şekilde işlenecek olan herhangi bir önceki test çıktısı.
· Aynı testte üretilen daha sonraki çıktılar yakalanmayacak ve bunun yerine
doğrudan gönderildi sys.stdout. Bunun, meydana gelen test çıktısı için bile geçerli olduğunu unutmayın.
interaktiften çıktıktan sonra PDB izleme oturumu ve normal testle devam edin
koşmak.
Pytest sürüm 2.4.0'dan beri yerel Python'u da kullanabilirsiniz. ithalat pdb;pdb.set_trace()
girmek için ara PDB kullanmak zorunda kalmadan takip pytest.set_trace() sarıcı veya
pytest'in çıktı yakalamasını açıkça devre dışı bırak py.testi -s.
PROFİL TEST UYGULAMA SÜRE
En yavaş 10 test süresinin bir listesini almak için:
py.test --süreler=10
OLUŞTURMA JUNITXML FORMAT DOSYALAR
Tarafından okunabilen sonuç dosyaları oluşturmak için Hudson veya diğer Sürekli entegrasyon
sunucular, bu çağrıyı kullanın:
py.test --junitxml=yol
adresinde bir XML dosyası oluşturmak için yol.
kayıt_xml_özelliği
2.8 sürümünde yeni.
Bir test için ek bilgi kaydetmek istiyorsanız, kayıt_xml_özelliği
Fikstür:
def test_function(record_xml_property):
record_xml_property("example_key", 1)
0 iddia etmek
Bu ekstra bir özellik ekleyecektir örnek_anahtar="1" üretilene test durumu etiket:
UYARI:
Bu deneysel bir özelliktir ve arayüzü daha farklı bir şeyle değiştirilebilir.
gelecek sürümlerde güçlü ve genel. Kendi başına işlevsellik korunacak,
Ancak.
Şu anda ile kullanıldığında çalışmıyor pytest-xdist eklentisi.
Ayrıca, bu özelliği kullanmanın herhangi bir şema doğrulamasını bozacağını lütfen unutmayın. Bu
bazı CI sunucularıyla kullanıldığında sorun olabilir.
OLUŞTURMA SONUÇ GÜNLÜĞÜ FORMAT DOSYALAR
Düz metin makine tarafından okunabilir sonuç dosyaları oluşturmak için şunları verebilirsiniz:
py.test --resultlog=yol
ve içeriğine bakın yol yer. Bu tür dosyalar, örneğin PyPy testi
birkaç revizyon üzerinde test sonuçlarını göstermek için web sayfası.
GÖNDERME TEST BİLDİRİN TO ONLINE PASTEBİN HİZMET
Oluşturma a URL için her test başarısızlık:
py.test --pastebin=başarısız
Bu, test çalıştırma bilgilerini uzak bir Yapıştır hizmetine gönderecek ve her biri için bir URL sağlayacaktır.
arıza. Testleri her zamanki gibi seçebilir veya örneğin ekleyebilirsiniz. -x sadece bir tane göndermek istersen
özel başarısızlık.
Oluşturma a URL için a bütün test Oturum log:
py.test --pastebin=tümü
Şu anda yalnızca yapıştırma http://bpaste.net hizmet uygulanmaktadır.
DEVRE DIŞI BIRAKMA PLUGINS
Çağrı sırasında belirli eklentilerin yüklenmesini devre dışı bırakmak için -p seçeneği ile birlikte
önek no:.
Örnek: eklentiyi yüklemeyi devre dışı bırakmak için belge testidoctest'in yürütülmesinden sorumlu olan
metin dosyalarından testler, py.test'i şu şekilde çağırın:
py.test -p no:doctest
ARAMA PY.TESTİ DAN PİTON KOD
2.0 sürümünde yeni.
çağırabilirsin Pytest doğrudan Python kodundan:
pytest.main()
bu, komut satırından "py.test"i çağırıyormuşsunuz gibi davranır. yükseltmeyecek
SystemExit ancak bunun yerine çıkış kodunu döndürün. Seçenekleri ve argümanları iletebilirsiniz:
pytest.main(['-x', 'mytestdir'])
veya bir dize iletin:
pytest.main("-x mytestdir")
için ek eklentiler belirtebilirsiniz. pytest.main:
# myinvoke.py içeriği
pytest'i içe aktar
MyPlugin sınıfı:
def pytest_sessionfinish(kendisi):
print("***test çalıştırması raporlama tamamlama")
pytest.main("-qq", eklentiler=[MyPlugin()])
Çalıştırmak bunu gösterecek Eklentim eklendi ve kancası çağrıldı:
$ piton myinvoke.py
*** test çalıştırması raporlama tamamlama
onworks.net hizmetlerini kullanarak py.test-2.7'ü çevrimiçi kullanın