- Python服務(wù)端測試開發(fā)實戰(zhàn)
- 無涯編著
- 1177字
- 2024-12-31 18:36:53
1.3 pytest執(zhí)行規(guī)則
1.pytest測試搜索
測試搜索是指在pytest測試框架中,如果沒有指定執(zhí)行的目錄,pytest默認會搜索一個項目下所有可執(zhí)行的測試模塊以及測試模塊中的測試方法來執(zhí)行,在這個過程中,并不在乎測試用例是在哪個包、哪個模塊下,這個過程被稱為“測試搜索”。只要是符合pytest執(zhí)行規(guī)則的測試方法都會被執(zhí)行。測試類是以Test開頭,測試方法是以test開頭。所以在使用pytest測試框架的過程中,建議所有的測試模塊都放在test包下,test包下每個Python文件的命名形式為“test_模塊名稱.py”,測試方法都以“test_”開頭。在執(zhí)行的過程中,只需要進入test包的目錄執(zhí)行命令pytest -v,pytest就會先搜索符合規(guī)則的測試模塊中的測試方法,然后按順序執(zhí)行。
2.pytest執(zhí)行方式
使用pytest測試框架編寫的測試用例都會放在test包下,但是在實際執(zhí)行的過程中,可以根據(jù)自己的需求,按照包的方式執(zhí)行;也可以執(zhí)行包下某一個測試模塊,或者是測試模塊中某個單一的測試函數(shù)以及測試類中的某個測試方法。下面結(jié)合具體的案例詳細介紹不同的執(zhí)行方式。
1)包級別執(zhí)行方式
包級別執(zhí)行方式是指執(zhí)行包下所有符合要求的測試模塊。創(chuàng)建test包,在test包下創(chuàng)建測試模塊test_demo.py,代碼如下。

下面通過包的方式來執(zhí)行該測試模塊,進入項目目錄,命令如下。
python3 -m pytest -v test/
進入項目目錄后,就會執(zhí)行包下所有測試模塊中符合要求的測試方法,執(zhí)行后,輸出結(jié)果如圖1-2所示。

圖1-2 按包執(zhí)行方式輸出結(jié)果
備注:
如圖1-2所示,test包下所有測試模塊中符合測試搜索規(guī)則的測試方法都被執(zhí)行了。
2)模塊級別執(zhí)行方式
模塊級別執(zhí)行方式是指在一個包下有很多的測試模塊時,自定義指定需要執(zhí)行的測試模塊,這樣只會執(zhí)行這個包下被指定執(zhí)行的測試模塊,其他的測試模塊不會被執(zhí)行。在test包下新增test_login.py模塊,該模塊的代碼如下。

下面介紹測試模塊的執(zhí)行方式,只執(zhí)行test包下test_login.py模塊的代碼,命令如下。
python3 -m pytest -v test/test_login.py
按模塊執(zhí)行后的結(jié)果如圖1-3所示。

圖1-3 按模塊執(zhí)行后的結(jié)果
備注:
在圖1-3的輸出結(jié)果中可以發(fā)現(xiàn),程序只執(zhí)行了test包下test_login.py模塊中的代碼,test_demo.py中的代碼沒有被執(zhí)行。
3)類級別執(zhí)行方式
類級別執(zhí)行方式是指只執(zhí)行測試模塊中某一個類中的測試方法,如只執(zhí)行test_demo.py模塊中的TestAdd類中的測試方法,命令如下。
pyhton3 -m pytest -v test/test_demo.py::TestAdd
按類執(zhí)行后的結(jié)果如圖1-4所示。

圖1-4 按類執(zhí)行后的結(jié)果
備注:
在圖1-4的結(jié)果中可以發(fā)現(xiàn),程序只執(zhí)行了test_demo.py模塊中測試類TestAdd中的測試方法。
4)方法級別執(zhí)行方式
方法級別執(zhí)行方式是自定義指定只執(zhí)行測試類中具體的測試方法,如只執(zhí)行TestAdd類中的test_add_str方法,命令如下。
python3 -m pytest -v test/test_demo.py::TestAdd::test_add_str
按方法執(zhí)行后的結(jié)果如圖1-5所示。

圖1-5 按方法執(zhí)行后的結(jié)果
備注:
在圖1-5的輸出結(jié)果中可以發(fā)現(xiàn),程序只執(zhí)行了TestAdd類中的test_add_str方法,test_add_int方法并沒有被執(zhí)行。
5)函數(shù)級別執(zhí)行方式
函數(shù)級別執(zhí)行方式是自定義指定執(zhí)行測試模塊中的某一個測試函數(shù),如指定執(zhí)行test_demo.py模塊中的測試函數(shù)test_add_int,命令如下。按函數(shù)執(zhí)行后的結(jié)果如圖1-6所示。
python3 -m pytest -v test/test_demo.py::test_add_int

圖1-6 按函數(shù)執(zhí)行后的結(jié)果
備注:
在圖1-6的結(jié)果中可以發(fā)現(xiàn),程序只執(zhí)行了指定模塊中的test_add_int函數(shù)。
- 零基礎(chǔ)學(xué)Visual C++第3版
- Android項目開發(fā)入門教程
- 編程的修煉
- C語言程序設(shè)計(第2 版)
- Leap Motion Development Essentials
- 云計算通俗講義(第3版)
- 零基礎(chǔ)學(xué)Python網(wǎng)絡(luò)爬蟲案例實戰(zhàn)全流程詳解(高級進階篇)
- D3.js 4.x Data Visualization(Third Edition)
- C語言程序設(shè)計教程
- Kotlin從基礎(chǔ)到實戰(zhàn)
- uni-app跨平臺開發(fā)與應(yīng)用從入門到實踐
- 深度實踐KVM:核心技術(shù)、管理運維、性能優(yōu)化與項目實施
- 物聯(lián)網(wǎng)系統(tǒng)架構(gòu)設(shè)計與邊緣計算(原書第2版)
- JavaScript設(shè)計模式與開發(fā)實踐
- Windows 10 for Enterprise Administrators