pytest入坑到放棄3--setup\teardown(前置\後置)
阿新 • • 發佈:2020-08-17
1、setup\teardown 執行級別
- 模組級別(setup_module/teardown_module):開始於模組始末,全域性的
- 函式級(setup_function/teardown_function):對函式用例生效(不在類中)
- 類級(setup_class/teardown_class):只在類中前後執行一次(在類中)
- 方法級(setup_method/teardown_method):開始於方法始末(在類中)
- 類裡面的(setup/teardown):在呼叫方法的前後執行
2、模組級別(setup_module/teardown_module) 和 函式級(setup_function/teardown_function)
# File : test_demo_2.py # IDE : PyCharm import pytest # 整個檔案只執行一次,在 selenium 中可以實現一個瀏覽器執行多個測試用例 def setup_module(): print('*' * 10 +'用例開始,只執行一次!'+ '*' * 10) def teardown_module(): print('*' * 10 +'用例結束,只執行一次!' + '*' * 10)
# 每執行一個測試用例執行一次setup和teardown def setup_function(): print('*' * 10 +'用例開始!'+ '*' * 10) def teardown_function(): print('*' * 10 +'用例結束!' + '*' * 10) def test_1(): print('*' * 5 + 'test_1' + '*' * 5) a = 'hello world!' assert 'hello' in a def test_2(): print('*' * 5 + 'test_2' + '*' * 5) x = 'hello world!' assert hasattr(x, 'helloWorld') @pytest.mark.smokedef test_3(): print('*' * 5 + 'test_3' + '*' * 5) b = 3 assert b == 4
3、類級(setup_class/teardown_class):
pytest 中的 setup() 和 teardown(),等價於unittest 框架中有 setUp() 和 tearDown()
pytest 中的 setup_class() 和 teardown_class(),等價於 unittest 中的 setupClass() 和 teardownClass()
4、執行順序:
setup_module > setup_class > setup_method > setup > teardown > teardown_method > teardown_class > teardown_module
def setup_module():
print('*' * 10 +'用例開始!'+ '*' * 10)
def teardown_module():
print('*' * 10 +'用例結束!' + '*' * 10)
def test_1():
print('*' * 5 + 'test_1' + '*' * 5)
a = 'hello world!'
assert 'hello' in a
def test_2():
print('*' * 5 + 'test_2' + '*' * 5)
x = 'hello world!'
assert hasattr(x, 'helloWorld')
@pytest.mark.smoke
def test_3():
print('*' * 5 + 'test_3' + '*' * 5)
b = 3
assert b == 4