pytest 的常見參數:
- -m :只運行被標記的測試用例;
- -k:只運行與給定字符串表達式匹配的測試用例;
- -s :顯示標準輸出,例如print()的語句;
- -v :顯示詳細報告;
- -q :顯示簡潔報告;
- -x :用例失敗時立即停止測試;
- -c file :從 file 加載配置文件;
- -l (--showlocals) :用例失敗信息回溯時顯示局部變量及其值;
- -rsxX :報告(r)測試用例被跳過(s)、預計失敗(x)、預計失敗但實際通過(X)的原因;
- -strict:禁止使用未在配置文件(pytest.ini)註冊的 mark 標記;
- --maxfail=n :失敗n後停止運行測試;
- --lf (--last-failed) :僅執行上次失敗的用例; 注意:如果沒有失敗的用例或者沒找到緩存文件,默認是運行所有的用例!
- --lfnf =[all, none] :與 --lf 同時使用,=all 代表找不到用例或緩存文件時執行所有用例,=none 代表找不到用 例或緩存文件時不執行測試用例;
- --ff (--failed-first) :先執行失敗的用例,再執行其他用例;
- --nf (--new-first) :首先從新文件或新修改的用例開始運行測試;
- --sw (--stepwise) :在測試失敗時退出,且下一次在測試失敗的用例開始測試;
- --stepwise-skip :忽略第一個失敗的測試,在第二次測試失敗時退出;
- --keep-duplicates : 不斷重複的測試;
- --durations=n :顯示執行最慢的n條用例; 注意:除非添加參數 -vv,默認情況下,否則pytest不會顯示<0.01s的測試時間;
- --fixtures :顯示所有可用的 fixture;
- --tb=style :堆棧回溯信息打印模式 (auto/long/short/line/native/no]);
- --setup-show :顯示fixture執行步驟;
- --cache-show=[CACHESHOW] :顯示緩存內容,不執行收集或測試;
- --cache-clear :運行前清除pytest緩存;
- --continue-on-collection-errors:即使發生收集(收集用例階段)錯誤,也強制執行測試;
- --rootdir=ROOTDIR :定義測試的根目錄;
-
--color=color :終端輸出的顏色(yes/no/auto);
-
--collect-only :只收集用例,不執行;
-
--assert=MODE : “plain”不執行任何斷言調試,“rewrite”重寫測試模塊中的assert語句,以提供assert表達式信息;
pytest 的常用插件:
- 用例失敗後自動重新運行:pytest-rerunfailures,使用方法:
- 安裝插件:pip install pytest-rerunfailures
- pytest test_x.py --reruns=n (失敗後重運行的次數)
- 重複運行測試:pytest-repeat,使用方法:
- 安裝插件:pip install pytest-repeat
- pytest test_x.py --count=n (重複運行的次數)
- 多線程執行測試任務:pytest-xdist,使用方法:
- 安裝插件:pip install pytest-xdist
- pytest test_x.py -n [N, auto] (N:指定併發的進程數,auto:自動檢測cpu數量)
- 爲測試設置時間限制:pytest-timeout,使用方法:
- 安裝插件:pip install pytest-timeout
- pytest test_x.py --timeout=n (時間限制,單位:秒)
- 用例失敗時立刻顯示錯誤的堆棧回溯信息:pytest-instafail,使用方法:
- 安裝插件:pip install pytest-instafail
- pytest test_x.py --instafail
- 顯示色彩和進度條(也能顯示錯誤的堆棧信息):pytest-sugar,使用方法:
- 安裝插件即可生效:pip install pytest-sugar
- 藉助瀏覽器完成自動化測試:pytest-selenium,可以啓動一個瀏覽器,打開網址,運行web應用,填充表單等等;