pytest超時是一個插件py.test一定超時後,將終止測試 在這樣做時,你會得到當時運行的所有線程的堆棧轉儲。這是非常有用的,當如運行在持續集成(CI)服務器測試。
用法
通過安裝:
PIP安裝pytest超時
然後啟用該插件,無論是在命令行:
py.test -p超時
或更方便地從測試模塊或conftest.py內:
pytest_plugins ='超時'
您可以使用--timeout參數,該參數設置以秒為單位的超時更改超時。
如何使用
這個插件工作在兩種方式之一。如果系統支持的SIGALRM信號警報將預定的測試開始時和當它完成取消。如果在測試過程中報警到期信號處理程序將使用pytest.fail()來已經傾倒運行到標準錯誤的任何其他線程的堆棧後中斷測試。
如果該系統不支持SIGALRM或使用了--nosigalrm選項,那麼計時器線程將被替代使用。再次,如果它過期之前將轉儲所有線程的堆棧使用os._exit終止整個py.test過程之前標準錯誤此計時器不會被取消(1)。
該SIGALRM方法的缺點是信號所使用的測試框架。如果這個信號在測試中使用的代碼,你將需要使用--nosigalrm選項。計時器線程的限制卻是創建一個線程執行的每一個測試,一個超時後的整個過程停止並沒有進一步的測試執行的事實的額外開銷。
什麼是新在此版本中:
- 在添加了PYTEST_TIMEOUT環境變量指定超時的一種方式(關閉問題#2)
- 在更靈活的標示參數解析:你現在可以使用位置參數指定的方法
- 在插件現在是默認啟用。就不再需要在配置文件或命令行上簡單地使一個標記將工作指定超時= 0。
什麼版本0.2是新的:
- 在添加標記使用@pytest修改超時延遲.timeout(N)的語法,感謝Laurant布拉克的初始代碼。
- 在允許超時標誌使用方法關鍵字參數選擇超時方法。
- 在重命名--nosigalrm選項--method =線程面向未來支持eventlet和GEVENT。感謝羅尼Pfannschmidt的提示。
- 在加入超時和timeout_method項目的配置文件,這樣就可以啟用和使用INI文件來配置插件。由於霍爾格Krekel和羅尼Pfannschmidt的提示。
- 在測試(固定)的蟒蛇2.6,2.7和3.2。
要求:
- 在Python中
- 在py.test
評論沒有發現