pytest-zaman aşımı, belirli bir zaman aşımından sonra testler sona erecektir py.test için bir eklenti. & Nbsp; yaparken böylece anda çalışan tüm evrelerin bir yığın dökümü almak olacaktır. Bu yararlıdır, örneğin bir sürekli entegrasyon (CI) sunucusu altında testleri çalışan.
Kullanım
Aracılığıyla yükleyin:
pytest-timeout yüklemek pip
ve sonra ya komut satırından, eklentisini etkinleştirin:
py.test -p zaman aşımı
ya da daha uygun bir deney modülü veya conftest.py içinden:
pytest_plugins = 'zaman aşımı'
Birkaç saniye içinde zaman aşımı ayarlar --timeout parametresini kullanarak zaman aşımı değiştirebilirsiniz.
Bu Nasıl Çalışır
Bu eklenti iki yoldan birini çalışır. Sistem SIGALRM sinyalini destekliyorsa bir alarm olduğunda testler başlar planlanan edilecek ve bittiği zaman iptal. Alarm testi sırasında dolarsa sinyal işleyici stderr'e çalışan diğer herhangi bir iş parçacığı yığın dampingli sonra testi kesmek için pytest.fail () kullanacaktır.
Sistem SIGALRM desteklemiyor veya --nosigalrm seçenek kullanıldığında ise daha sonra zamanlayıcı iplik yerine kullanılacaktır. O os._exit kullanarak tüm py.test sürecini sonlandırmadan önce stderr tüm evrelerin yığını dökümü süresi dolmadan önce bu zamanlayıcı iptal değilse, bir kez daha (1).
SIGALRM yönteminin olumsuz sinyal testi çerçevesi tarafından kullanılan olmasıdır. Bu sinyal testi altında kod tarafından kullanılır Eğer --nosigalrm seçeneğini kullanmanız gerekecektir. Zamanlayıcı iplik sınırlama ancak her idam testi ve bir zaman aşımından sonra tüm süreci durdurulur ve başka testler idam gerçeği bir iş parçacığı oluşturma ekstra yükü olduğunu.
nedir Yeni bu sürümde :.
- zaman aşımını belirterek bir yolu olarak PYTEST_TIMEOUT ortam değişkeni eklendi (konu # kapatır 2)
- Daha esnek işaretleyici argüman ayrıştırma:. Şimdi bir pozisyonel argümanı kullanarak yöntemi belirtebilirsiniz
- eklenti artık varsayılan olarak etkindir. Bir belirteç çalışacak basitçe böylece yapılandırma dosyasında veya komut satırında zaman aşımı = 0 belirtmek için artık bir ihtiyaç yoktur.
sürüm 0.2 yeni nedir:
- pytest kullanarak zaman aşımı gecikmesini değiştirmek için bir işaretleyici ekle .timeout (N) sözdizimi, başlangıç kodu Laurant Brack için teşekkürler.
- zaman aşımı işaretleyici yöntemi kelime argümanı kullanarak zaman aşımı yöntemini seçmek için izin ver.
- eventlet ve gevent için geleceğe uyumlu destek = iplik --method için --nosigalrm seçeneği yeniden adlandırın. Ipucu için Ronny Pfannschmidt için teşekkürler.
- yapılandırma dosyasının zaman aşımı ve timeout_method öğeleri ekleyin. Ipuçları için Holger Krekel ve Ronny Pfannschmidt için teşekkürler.
- python 2.6, 2.7 ve 3.2 için test (ve sabit).
Etkinleştirmek ve ini dosyasını kullanarak eklenti yapılandırabilirsiniz, böylece
Gereksinimler :
- Python
- py.test
Yorum Bulunamadı