Python单元测试框架之pytest 3 -- fixtures
From: https://www.cnblogs.com/fnng/p/4769020.html
Python單元測試框架之pytest -- fixtures
2015-08-29 13:05 by 蟲師, 10695 閱讀, 0 評論, 收藏, 編輯
fixtures不太好翻譯,可看作是夾心餅干最外層的兩片餅干。通常用setup/teardown來表示。它主要用來包裹測試用例,為什么需要這樣的餅干呢?我們以web自動化測試為例,例如,要測試的某系統需要登錄/退出。那么每一條用例執行前都需要登錄,執行完又都需要退出,這樣每條用例重復編寫登錄和退出就很麻煩,當然,你也可以把登錄和退出封裝為方法調用,但是每個用例中都寫調用也很麻煩。有了fixtures就變得簡便很多。
?
?
測試函數 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
創建test_fixtures.py文件
#coding=utf-8 import pytest# 功能函數 def multiply(a,b): return a * b # =====fixtures======== def setup_module(module): print ("\n") print ("setup_module================>") def teardown_module(module): print ("teardown_module=============>") def setup_function(function): print ("setup_function------>") def teardown_function(function): print ("teardown_function--->") # =====測試用例======== def test_numbers_3_4(): print 'test_numbers_3_4' assert multiply(3,4) == 12 def test_strings_a_3(): print 'test_strings_a_3' assert multiply('a',3) == 'aaa' if __name__ == '__main__': pytest.main("-s test_fixtures.py")?
運行結果:
============================= test session starts ============================= platform win32 -- Python 2.7.10 -- py-1.4.30 -- pytest-2.7.2 rootdir: D:\pyse\pytest, inifile: plugins: html collected 2 itemstest_fixtures.py setup_module================> setup_function------> test_numbers_3_4 .teardown_function---> setup_function------> test_strings_a_3 .teardown_function---> teardown_module=============> ========================== 2 passed in 0.01 seconds ===========================通過執行結果,相信就很容易弄清楚它們的執行順序。
setup_module/teardown_module ? ? ?在所有測試用例執行之后和之后執行。
setup_function/teardown_function ? ?在每個測試用例之后和之后執行。
?
?
測試類 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?
#coding=utf-8 import pytest# 功能函數 def multiply(a,b): return a * b class TestUM: # =====fixtures======== def setup(self): print ("setup----->") def teardown(self): print ("teardown-->") def setup_class(cls): print ("\n") print ("setup_class=========>") def teardown_class(cls): print ("teardown_class=========>") def setup_method(self, method): print ("setup_method----->>") def teardown_method(self, method): print ("teardown_method-->>") # =====測試用例======== def test_numbers_5_6(self): print 'test_numbers_5_6' assert multiply(5,6) == 30 def test_strings_b_2(self): print 'test_strings_b_2' assert multiply('b',2) == 'bb' if __name__ == '__main__': pytest.main("-s test_fixtures.py")?
運行結果:
============================= test session starts ============================= platform win32 -- Python 2.7.10 -- py-1.4.30 -- pytest-2.7.2 rootdir: D:\pyse\pytest, inifile: plugins: html collected 2 itemstest_fixtures.py setup_class=========> setup_method----->> setup-----> test_numbers_5_6 .teardown--> teardown_method-->> setup_method----->> setup-----> test_strings_b_2 .teardown--> teardown_method-->> teardown_class=========> ========================== 2 passed in 0.00 seconds ===========================?
setup_class/teardown_class??在當前測試類的開始與結束執行。
setup/treadown ? ? ? ? ? ? ? ? ??在每個測試方法開始與結束執行。
setup_method/teardown_method ? ??在每個測試方法開始與結束執行,與setup/treadown級別相同。
轉載于:https://www.cnblogs.com/Raul2018/p/9760046.html
總結
以上是生活随笔為你收集整理的Python单元测试框架之pytest 3 -- fixtures的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 图床-1
- 下一篇: 利用django中间件CsrfViewM