官术网_书友最值得收藏!

1.4 pytest常用命令

在pytest測(cè)試框架中執(zhí)行程序時(shí)會(huì)用到很多命令,下面詳細(xì)介紹一些常用命令的使用。

1.打印詳細(xì)信息

在pytest中執(zhí)行命令時(shí)帶上-v參數(shù),就會(huì)輸出詳細(xì)的信息,代碼如下。

不帶-v參數(shù)的命令如下。

python3 -m pytest test_command.py

不帶-v參數(shù)命令執(zhí)行后的結(jié)果如圖1-7所示。

圖1-7 不帶-v參數(shù)命令執(zhí)行后的結(jié)果

在圖1-7中可以看到執(zhí)行結(jié)果是.,.表示的是通過。帶-v參數(shù)的命令如下。帶-v參數(shù)命令執(zhí)行后的結(jié)果如圖1-8所示。

python3 -m pytest -v test_command.py

圖1-8 帶-v參數(shù)命令執(zhí)行后的結(jié)果

備注:

執(zhí)行帶-v參數(shù)的命令的輸出結(jié)果中詳細(xì)地顯示了測(cè)試模塊中具體的測(cè)試函數(shù),結(jié)果信息也是通過PASSED來表示。

2.輸出信息

在實(shí)際測(cè)試中,當(dāng)測(cè)試函數(shù)出現(xiàn)錯(cuò)誤時(shí),需要進(jìn)行具體的調(diào)試,可以通過在測(cè)試函數(shù)中添加print()函數(shù)輸出調(diào)試信息來幫助調(diào)試具體的錯(cuò)誤。pytest執(zhí)行時(shí),如果需要輸出測(cè)試函數(shù)的信息,則應(yīng)帶上-s參數(shù)。修改test_command.py模塊的代碼如下。

執(zhí)行命令如下。

python3 -m pytest  -v -s test_command.py

帶-s參數(shù)命令執(zhí)行后的結(jié)果如圖1-9所示。

圖1-9 帶-s參數(shù)命令執(zhí)行后的結(jié)果

備注:

圖1-9中顯示了測(cè)試函數(shù)中print()輸出的內(nèi)容。

3.按分類執(zhí)行

在pytest中,參數(shù)-k允許使用表達(dá)式來指定希望執(zhí)行的測(cè)試用例,如果測(cè)試用例編寫的過程中按照業(yè)務(wù)進(jìn)行命名,那么在執(zhí)行過程中可以指定執(zhí)行哪些業(yè)務(wù)的測(cè)試用例,代碼如下。

在如上代碼中,假設(shè)開發(fā)只調(diào)整了login模塊,那么可以只執(zhí)行測(cè)試函數(shù)名中帶login的測(cè)試用例,命令如下。

python3 -m pytest  -v -k "login" test_login.py

帶-k參數(shù)命令執(zhí)行后的結(jié)果如圖1-10所示。

圖1-10 帶-k參數(shù)命令執(zhí)行后的結(jié)果

備注:

如上結(jié)果中,只執(zhí)行了函數(shù)名中帶login關(guān)鍵字的測(cè)試用例。如果想同時(shí)執(zhí)行函數(shù)名中帶login和logout的測(cè)試用例,可以使用以下命令。

python3 -m pytest  -v -k "login or logout" test_command.py

執(zhí)行后輸出的結(jié)果如圖1-11所示。

圖1-11 分類執(zhí)行條件為或(or)的執(zhí)行結(jié)果

備注:

如果在執(zhí)行命令中的表達(dá)式是或的關(guān)系,那么就會(huì)執(zhí)行函數(shù)名中帶login和logout的測(cè)試用例,圖1-11中的執(zhí)行結(jié)果顯示執(zhí)行了帶不同關(guān)鍵字的兩個(gè)測(cè)試用例。

4.按分組執(zhí)行

pytest的命令中帶參數(shù)-m可以快速找到分組并且立刻執(zhí)行,分組模式主要是根據(jù)裝飾器執(zhí)行的。代碼如下。

下面介紹使用分組的方式來執(zhí)行測(cè)試用例,如只執(zhí)行分組為login和logout的測(cè)試用例,命令如下。

python3 -m pytest  -v -m "login and logout" test_command.py

帶-m參數(shù)命令執(zhí)行后的結(jié)果如圖1-12所示。

圖1-12 帶-m參數(shù)命令執(zhí)行后的結(jié)果

備注:

如上輸出結(jié)果中,同時(shí)滿足login和logout分組的測(cè)試用例只有test_command_001()測(cè)試函數(shù),所以只執(zhí)行了該函數(shù)。

對(duì)執(zhí)行的命令進(jìn)行調(diào)整,同時(shí)執(zhí)行分組login和logout的測(cè)試用例,命令如下。

python3 -m pytest  -v -m "login or  logout" test_command.py

執(zhí)行結(jié)果如圖1-13所示。

圖1-13 執(zhí)行結(jié)果

備注:

如果執(zhí)行的表達(dá)式是或關(guān)系,則執(zhí)行所有滿足條件的測(cè)試用例。

5.執(zhí)行失敗立刻停止

在pytest執(zhí)行測(cè)試用例的過程中,如果有一個(gè)測(cè)試用例執(zhí)行失敗,就立刻停止執(zhí)行所有測(cè)試用例,使用到的參數(shù)是-x,代碼如下。

如上代碼中第一個(gè)測(cè)試用例斷言執(zhí)行失敗,即說明執(zhí)行的過程失敗,命令如下。

python3 -m pytest  -v -x  test_command.py

執(zhí)行結(jié)果如圖1-14所示。

圖1-14 帶-x參數(shù)命令執(zhí)行結(jié)果

備注:

如上代碼中,執(zhí)行到第一個(gè)測(cè)試用例時(shí)失敗,后面的測(cè)試用例就不會(huì)執(zhí)行。一般不建議使用該命令。在測(cè)試執(zhí)行的過程中,不管是否執(zhí)行失敗,都應(yīng)該把所有的測(cè)試用例執(zhí)行完成。

主站蜘蛛池模板: 菏泽市| 平顶山市| 涞水县| 西乌| 防城港市| 岐山县| 南郑县| 大荔县| 琼中| 东海县| 乌拉特后旗| 修文县| 合阳县| 根河市| 卓资县| 娱乐| 抚宁县| 泽普县| 宜宾市| 平凉市| 西乡县| 英山县| 灵山县| 永平县| 高尔夫| 汉源县| 张家界市| 龙游县| 荥经县| 天长市| 鸡西市| 凤翔县| 诏安县| 沙雅县| 儋州市| 和平区| 祥云县| 汾西县| 甘孜县| 鄯善县| 鹰潭市|