一、簡介
在pytest框架也有一個入口,那就是 pytest.main(),可以作為用例執(zhí)行入口,下面我們對pytest.main()進行講解。

重點參數(shù)說明 args
:param args: List of command line arguments.
翻譯 :參數(shù) args:就是參數(shù)傳入已列表的方式
main() 命令行參數(shù)詳情
-s: 顯示程序中的print/logging輸出
-v: 豐富信息模式, 輸出更詳細的用例執(zhí)行信息
-q: 安靜模式, 不輸出環(huán)境信息
-x: 出現(xiàn)一條測試用例失敗就退出測試。調(diào)試階段非常有用
-k:可以使用and、not、or等邏輯運算符,區(qū)分:匹配范圍(文件名、類名、函數(shù)名)
當不傳入?yún)?shù)時,相當于命令行輸入 pytest。
當傳入?yún)?shù) -s -v -x 時,相當于命令行輸入 pytest -s -v -x。
二、使用
1. pytest的兩種運行模式,一種是命令行運行,另外一種是調(diào)用pytest.main() 運行
2. pytest.main() 運行模式時,不添加任何參數(shù),表示運行當前目錄下的所有的測試文件;
2.1 main()方法中不填寫任何參數(shù),表示運行當前目錄下的所有的測試文件;
2.2 添加參數(shù):pytest.main(['-s','-v','-k "print"',''])
(1)‘-s’:關(guān)閉捕捉,輸出打印信息;----就是運行的時候是否出入代碼里邊的一些打印信息,比如你的測試代碼里邊包含了print語句,則print的內(nèi)容會顯示出來;如果不填寫該參數(shù),則print語句的值不會 打印出來
?。?)‘-v’:用于增加測試用例的冗長。---沒太看懂到底代表啥意思,等看懂了再補充上,這是復制的別人的
?。?)‘-k’ :運行包含某個字符串的測試用例。如:pytest -k add XX.py 表示運行XX.py中包含add的測試用例。
(4)‘q’:減少測試的運行冗長。
(5)‘-x’:出現(xiàn)一條測試用例失敗就退出測試。在調(diào)試階段非常有用,當測試用例失敗時,應該先調(diào)試通過,而不是繼續(xù)執(zhí)行測試用例
2.3 要執(zhí)行測試用例的過濾方法:
(1)指定某個測試類或測試方法,用“::”隔開。如:命令格式:pytest 文件名.py::測試方法 ,pytest.main([模塊.py::類或方法]) ,pytest 文件名.py::測試類::測試方法 ,pytest.main([模塊.py::類::方法])
3. python文件中包含如下代碼,則可運行當前目錄下,的測試類或者測試方法(以test_開頭或者以test結(jié)尾的類.py文件,以test_開頭的測試方法,具體可參照配置文件),同時使用到多個參數(shù)時,格式如下:
if name =="main":
pytest.main(['-s','-k print', 'add/test_second.py::test_noprint_cock'])