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

1.4.3 pytest的框架結構

在執行測試的過程中,我們經常會做些準備工作,再進行測試,測試完成后通常也會將現場恢復原狀,因此我們希望執行測試的框架能提供各層次的測試前和測試后的方法。

絕大多數的測試框架只提供setup與teardown。在setup的方法中進行準備代碼,在teardown方法中進行銷毀代碼。

pytest提供了相對自由和層次豐富的setup與teardown框架結構。pytest支持5個層次的setup和teardown,包括:session會話級、module模塊級、function函數級、class類級、method方法級。

(1)模塊級(setup_module/teardown_module):開始于模塊始末(不在類中)。

(2)函數級(setup_function/teardown_function):對函數用例生效(不在類中)。

(3)方法級(setup_method/teardown_method):開始于方法始末(在類中)。

(4)類級(setup_class/teardown_class):只在類中前后運行一次(在類中)。

(5)還有兼容的類里面的層級(setup/teardown):運行在調用方法的前后。

這些級別用在配置初始化setup和銷毀teardown中,同樣可以配合pytest中fixture功能而變得更強大。將在3.3節具體講解。

下面給大家逐步演示常用級別所影響的范圍層次。先演示模塊級和函數級,之后演示方法級、類級及兼容的setup和teardown,最后將整體5個常用級別放在一起演示執行效果。

模塊和函數級實踐步驟如下:

(1)新建Python文件test_frame_1.py。

(2)在文件中輸入如下代碼。

(3)單擊執行代碼。

(4)查看運行結果是否與方法中輸入的文字含義相同。

完整代碼如下:

執行結果如下:module級在py文件中只執行一次,function則在非類的測試方法前后執行,每個測試方法都會調用一次。

整體文件結構、代碼及運行結果如圖1-4所示。

圖1-4 test_frame_1.py文件執行結果

類和方法級實踐如下:

(1)新建Python文件test_frame_2.py。

(2)在文件中輸入如下代碼。

(3)單擊執行代碼。

(4)查看運行結果是否與方法中輸入的文字含義相同。

完整代碼如下:

執行結果如下:

將類中方法和非在類中的方法等所有級放在一起執行,代碼如下:

執行結果如下:

主站蜘蛛池模板: 烟台市| 峨边| 屯留县| 洞口县| 卢湾区| 柞水县| 龙岩市| 巴塘县| 垣曲县| 碌曲县| 肥乡县| 绍兴县| 临颍县| 荥经县| 嘉义县| 马公市| 灵寿县| 铜鼓县| 南陵县| 武平县| 霸州市| 泾源县| 孙吴县| 农安县| 永嘉县| 桐庐县| 宜兰县| 勃利县| 锡林郭勒盟| 金华市| 积石山| 什邡市| 宝丰县| 宁阳县| 徐汇区| 兴隆县| 柳江县| 大洼县| 唐山市| 淮滨县| 师宗县|