七 捕獲告警資訊

2022-06-01 06:09:09 字數 3324 閱讀 8564

1、告警資訊的預設捕獲行為

pytest可以自動捕獲測試中產生的告警資訊,並在執行結束後進行展示;

可以通過-w arg命令列選項來自定義告警的捕獲行為:

arg引數的格式為:action:message:category:module:lineno

使用場景:

(1)忽略某一種型別的告警資訊;例如,忽略userwarning型別的告警(-w ignore::userwarning):

(2)將某一種型別的告警轉換為異常來處理;例如,將userwarning告警轉換為異常處理(-w error::userwarning):

(3)只展示某乙個模組中產生的告警;例如,只展示test_show_warnings模組產生的告警,忽略其它所有的告警(-w ignore -w default:::test_show_warnings):

多個-w選項的組合操作,優先順序是從左到右依次遞增的;這裡如果將它們調換一下順序(即-w default:::test_show_warnings -w ignore),因為-w ignore最後生效,覆蓋掉之前的操作,最終的結果就是我們乙個告警資訊都沒有捕獲到;

(4)可以通過在pytest.ini檔案中配置filterwarnings項,來實現同樣的效果;例如,上述的例子在pytest.ini的配置為:

通過為測試項新增告警過濾器,通過@pytest.mark.filterwarnings新增的過濾器優先順序要高於命令列或pytest.ini新增的過濾器;可以通過將@pytest.mark.filterwarnings應用於測試類來為這個類中所有的用例新增告警過濾器;

3、去使能告警資訊顯示

通過--disable-warnings命令列選項來禁止告警資訊的展示

4、通過-p no:warnings命令列選項徹底禁止告警的捕獲行為:

5、deprecationwarningpendingdeprecationwarning告警

pytest會預設捕獲deprecationwarningpendingdeprecationwarning型別的告警;可以通過在pytest.ini新增配置;例如,忽略告警資訊匹配".*u.*mode is deprecated"deprecationwarning告警:

(1)pytest.deprecated_call方法

通過deprecated_call方法確保一段**觸發了deprecationwarningpendingdeprecationwarning告警:

6、編寫觸發期望告警的斷言

使用pytest.warns()作為上下文管理器,來編寫乙個觸發期望告警的斷言,它和pytest.raises()的用法很接近;

(1)自定義失敗是的告警資訊

如果api_call_v1沒有觸發任何告警,pytest就會顯示pytest.fail中自定義的提示訊息;

7、通過recwarn來實現同樣的功能;

recwarn是乙個用例級別的fixture,它可以記錄用例產生的所有的告警;recwarn和之前pytest.warns()返回值一樣,都是乙個warningsrecorder的例項;

8、pytest自定義的告警型別

pytest本身封裝了一些告警的型別,並作為公共介面以供使用者使用; 一些常見的內部告警:

告警父類

描述pytestwarning

userwarning

所有告警的父類;

pytestcollectionwarning

pytestwarning

不能夠收集某個模組中的用例;

pytestconfigwarning

pytestwarning

配置錯誤;

pytestunknownmarkwarning

pytestwarning

使用了未知的標記;

參考:

Promise捕獲報錯資訊小記

function ss resolve,reject function test function error catch function err test 捕獲報錯知識點 ss 方法裡報錯,捕獲錯誤資訊方式為 then function value function error then 方法內...

Perl中捕獲警告資訊 異常資訊並寫入日誌詳解

雖然建議在每個perl指令碼和模組中開啟警告,可是你又不想使用者看到perl發出的警告。一方面你想在 前面使用use warnings作為你的安全網,另一方面,通常警告會出現在螢幕上。多數情況下,客戶不知道如何處理這些警告。如果幸運的話這些警告僅僅讓客戶驚訝一下,當然,不幸的是他們嘗試著去修復它們....

python異常資訊捕獲方法整理歸納

方法一 try print 1 0 except exception,con print exception,con con可以換成其它的名字 方法二 try print 1 0 except import traceback traceback.print exc 將異常資訊列印在直譯器上 以下是...