天天看點

pytest

pytest架構要執行用例,必須以子產品test開頭,函數test開頭,類test開頭,否則不被執行;

pytest的執行 :

執行package:python -m pytest -v test/ 

執行子產品下的測試用例:python -m pytest -v tests/test_login.py::test_login_001

執行子產品下的類:python -m pytest -v test/test_login.py::testbaidu

執行類下的方法:python -m pytest -v test/test_login.py::testbaidu::test_login_001s

按照方法名來篩選要執行的方法用k,後面加--collect-only檢視篩選情況:python -m pytest -v -k "profile or register" --collect-only,取消--collect-only後進行執行,如果将前面的or換成and,那麼執行的就是名字中既有profile又有register的函數;

-m是以增加裝飾器的形式進行分組,python -m pyetst -v -m "login or logout“

 -x失敗後立即停止:

python3 -m pytest -v -x test_login.py

pytest.mark.skip(reason="寫跳過的原因") 

pytest參數化,如果類清單中的資料類型是字典,那麼參數化時字典中的key值不能被一一寫出,所有都要用data代替@pytest.mark.parametrize('data',被調用函數)