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

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ù)。

主站蜘蛛池模板: 中方县| 靖安县| 游戏| 黎城县| 聊城市| 栖霞市| 莱州市| 南靖县| 陆川县| 米易县| 炉霍县| 隆回县| 大关县| 洞口县| 晋江市| 兴国县| 内黄县| 尉氏县| 交口县| 华阴市| 全州县| 通化县| 黔东| 西畴县| 金昌市| 吉安县| 华容县| 陆良县| 宁都县| 卫辉市| 武邑县| 鄯善县| 乐陵市| 吐鲁番市| 普兰县| 吴江市| 陆良县| 花垣县| 北安市| 乐亭县| 阿荣旗|