日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python Pytest前置setup和后置teardown详解

發(fā)布時間:2025/3/15 python 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python Pytest前置setup和后置teardown详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

pytest用例運行級別:
●模塊級(setup_module/teardown_module)開始于模塊始末,全局的
●函數(shù)級(setup_function/teardown_function)只對函數(shù)用例生效
●類級(setup_class/teardown_class)只在類中前后運行一次(在類中生效,類外不生效)
●方法級(setup_method/teardown_method)開始于方法始末(在類中生效,類外不生效)
●類里面的(setup/teardown)運行在調(diào)用方法的前后(類中生效、類外有函數(shù)時生效)

函數(shù)級:

函數(shù)前置setup_function和后置teardown_function,放類中無效,放類外且類外有函數(shù)用例時才生效,每個用例開始前和結(jié)束后各調(diào)用一次,調(diào)用多次

import pytest def setup_function():print("setup_function:每個用例開始前都會執(zhí)行") def teardown_function():print("teardown_function:每個用例結(jié)束后都會執(zhí)行") def test_one():print("正在執(zhí)行---test_one") def test_two():print("正在執(zhí)行---test_two") def login():print("正在執(zhí)行---test_two") if __name__ == "__main__":pytest.main(["-s","test02.py"])"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test02.py ============================= test session starts ============================= platform win32 -- Python 3.5.2, pytest-5.1.2, py-1.8.0, pluggy-0.12.0 rootdir: C:\Users\wangli\PycharmProjects\Test\Test collected 2 itemstest02.py setup_function:每個用例開始前都會執(zhí)行 正在執(zhí)行---test_one .teardown_function:每個用例結(jié)束后都會執(zhí)行 setup_function:每個用例開始前都會執(zhí)行 正在執(zhí)行---test_two .teardown_function:每個用例結(jié)束后都會執(zhí)行============================== 2 passed in 0.14s ==============================Process finished with exit code 0

模塊前置setup_module和后置teardown_module,放類中無效,放類外且類外有函數(shù)用例或類內(nèi)有函數(shù)用例時才生效,整個.py模塊開始前和結(jié)束后各調(diào)用一次

import pytest def setup_module():print("setup_module:整個.py模塊開始執(zhí)行一次") def teardown_module():print("teardown_module:整個.py模塊結(jié)束執(zhí)行一次") def setup_function():print("setup_function:每個用例開始前都會執(zhí)行") def teardown_function():print("teardown_function:每個用例結(jié)束后都會執(zhí)行") def test_one():print("正在執(zhí)行---test_one") def test_two():print("正在執(zhí)行---test_two") def login_test():print("正在執(zhí)行---test_two") if __name__ == "__main__":pytest.main(["-s","test02.py"])"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test02.py ============================= test session starts ============================= platform win32 -- Python 3.5.2, pytest-5.1.2, py-1.8.0, pluggy-0.12.0 rootdir: C:\Users\wangli\PycharmProjects\Test\Test collected 2 itemstest02.py setup_module:整個.py模塊開始執(zhí)行一次 setup_function:每個用例開始前都會執(zhí)行 正在執(zhí)行---test_one .teardown_function:每個用例結(jié)束后都會執(zhí)行 setup_function:每個用例開始前都會執(zhí)行 正在執(zhí)行---test_two .teardown_function:每個用例結(jié)束后都會執(zhí)行 teardown_module:整個.py模塊結(jié)束執(zhí)行一次============================== 2 passed in 0.08s ==============================Process finished with exit code 0

類級:

類前置setup_class和后置teardown_class,放類外無效,放類內(nèi)且類內(nèi)有函數(shù)用例時才生效,類開始前和結(jié)束后各執(zhí)行一次(方法級,調(diào)用1次)

方法前置setup_method和后置teardown_method,放類外無效,放類內(nèi)且類內(nèi)有函數(shù)用例時才生效,每個用例開始前和結(jié)束后調(diào)用1次(方法級,調(diào)用多次)

類里面前置setup和后置teardown,放類內(nèi)(類內(nèi)有用例)和類外(有用例)都生效,每個用例開始前和結(jié)束后調(diào)用1次(函數(shù)、方法級,調(diào)用多次)

?

setup_class:所有用例執(zhí)行之前(類級)


setup_method:每個用例開始前執(zhí)行(方法級)
setup:每個用例開始前執(zhí)行(調(diào)用方法前)
正在執(zhí)行---test_one
.teardown:每個用例結(jié)束后執(zhí)行(調(diào)用方法后)
teardown_method:每個用例結(jié)束后執(zhí)行(方法級)


setup_method:每個用例開始前執(zhí)行(方法級)
setup:每個用例開始前執(zhí)行(調(diào)用方法前)
正在執(zhí)行---test_two
.teardown:每個用例結(jié)束后執(zhí)行(調(diào)用方法后)
teardown_method:每個用例結(jié)束后執(zhí)行(方法級)


teardown_class:所有用例執(zhí)行之后(類級)

?

import pytestclass Test():def setup(self):print("setup:每個用例開始前執(zhí)行(調(diào)用方法前)")def teardown(self):print("teardown:每個用例結(jié)束后執(zhí)行(調(diào)用方法后)")def setup_class(self):print("setup_class:所有用例執(zhí)行之前(類級)")def teardown_class(self):print("teardown_class:所有用例執(zhí)行之后(類級)")def setup_method(self):print("setup_method:每個用例開始前執(zhí)行(方法級)")def teardown_method(self):print("teardown_method:每個用例結(jié)束后執(zhí)行(方法級)")def test_one(self):print("正在執(zhí)行---test_one")def test_two(self):print("正在執(zhí)行---test_two")def login_test(self):print("正在執(zhí)行---test_two")if __name__ == "__main__":pytest.main(["-s","test02.py"])"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test02.py ============================= test session starts ============================= platform win32 -- Python 3.5.2, pytest-5.1.2, py-1.8.0, pluggy-0.12.0 rootdir: C:\Users\wangli\PycharmProjects\Test\Test collected 2 itemstest02.py setup_class:所有用例執(zhí)行之前(類級) setup_method:每個用例開始前執(zhí)行(方法級) setup:每個用例開始前執(zhí)行(調(diào)用方法前) 正在執(zhí)行---test_one .teardown:每個用例結(jié)束后執(zhí)行(調(diào)用方法后) teardown_method:每個用例結(jié)束后執(zhí)行(方法級) setup_method:每個用例開始前執(zhí)行(方法級) setup:每個用例開始前執(zhí)行(調(diào)用方法前) 正在執(zhí)行---test_two .teardown:每個用例結(jié)束后執(zhí)行(調(diào)用方法后) teardown_method:每個用例結(jié)束后執(zhí)行(方法級) teardown_class:所有用例執(zhí)行之后(類級)============================== 2 passed in 0.21s ==============================Process finished with exit code 0

類與函數(shù)混合:

setup_module和teardown_module優(yōu)先級最大

import pytest def setup_module():print("——setup_module:整個.py模塊開始執(zhí)行一次【函數(shù)】") def teardown_module():print("——teardown_module:整個.py模塊結(jié)束執(zhí)行一次【函數(shù)】") def setup_function():print("====setup_function:每個用例開始前都會執(zhí)行【函數(shù)】") def teardown_function():print("====teardown_function:每個用例結(jié)束后都會執(zhí)行【函數(shù)】") def test_one():print("正在執(zhí)行---test_one【函數(shù)】") def test_two():print("正在執(zhí)行---test_two【函數(shù)】") def setup():print("@@@@@setup:每個用例開始前執(zhí)行(調(diào)用方法前)【函數(shù)】") def teardown():print("@@@@@teardown:每個用例結(jié)束后執(zhí)行(調(diào)用方法后)【函數(shù)】") class Test():def setup(self):print("setup:每個用例開始前執(zhí)行(調(diào)用方法前)")def teardown(self):print("teardown:每個用例結(jié)束后執(zhí)行(調(diào)用方法后)")def setup_class(self):print("setup_class:所有用例執(zhí)行之前(類級)")def teardown_class(self):print("teardown_class:所有用例執(zhí)行之后(類級)")def setup_method(self):print("setup_method:每個用例開始前執(zhí)行(方法級)")def teardown_method(self):print("teardown_method:每個用例結(jié)束后執(zhí)行(方法級)")def test_three(self):print("正在執(zhí)行---test_one")def test_four(self):print("正在執(zhí)行---test_two") if __name__ == "__main__":pytest.main(["-s","test02.py"])"C:\Program Files\Python35\python.exe" C:/Users/wangli/PycharmProjects/Test/Test/test02.py ============================= test session starts ============================= platform win32 -- Python 3.5.2, pytest-5.1.2, py-1.8.0, pluggy-0.12.0 rootdir: C:\Users\wangli\PycharmProjects\Test\Test collected 4 itemstest02.py ——setup_module:整個.py模塊開始執(zhí)行一次【函數(shù)】 ====setup_function:每個用例開始前都會執(zhí)行【函數(shù)】 @@@@@setup:每個用例開始前執(zhí)行(調(diào)用方法前)【函數(shù)】 正在執(zhí)行---test_one【函數(shù)】 .@@@@@teardown:每個用例結(jié)束后執(zhí)行(調(diào)用方法后)【函數(shù)】 ====teardown_function:每個用例結(jié)束后都會執(zhí)行【函數(shù)】 ====setup_function:每個用例開始前都會執(zhí)行【函數(shù)】 @@@@@setup:每個用例開始前執(zhí)行(調(diào)用方法前)【函數(shù)】 正在執(zhí)行---test_two【函數(shù)】 .@@@@@teardown:每個用例結(jié)束后執(zhí)行(調(diào)用方法后)【函數(shù)】 ====teardown_function:每個用例結(jié)束后都會執(zhí)行【函數(shù)】 setup_class:所有用例執(zhí)行之前(類級) setup_method:每個用例開始前執(zhí)行(方法級) setup:每個用例開始前執(zhí)行(調(diào)用方法前) 正在執(zhí)行---test_one .teardown:每個用例結(jié)束后執(zhí)行(調(diào)用方法后) teardown_method:每個用例結(jié)束后執(zhí)行(方法級) setup_method:每個用例開始前執(zhí)行(方法級) setup:每個用例開始前執(zhí)行(調(diào)用方法前) 正在執(zhí)行---test_two .teardown:每個用例結(jié)束后執(zhí)行(調(diào)用方法后) teardown_method:每個用例結(jié)束后執(zhí)行(方法級) teardown_class:所有用例執(zhí)行之后(類級) ——teardown_module:整個.py模塊結(jié)束執(zhí)行一次【函數(shù)】============================== 4 passed in 0.04s ==============================Process finished with exit code 0

?

總結(jié)

以上是生活随笔為你收集整理的Python Pytest前置setup和后置teardown详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。