- pytest框架與自動化測試應用
- 房荔枝 梁麗麗編著
- 703字
- 2023-08-31 20:25:51
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)查看運行結果是否與方法中輸入的文字含義相同。
完整代碼如下:

執行結果如下:

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


執行結果如下:
