1、setup eardown 运行级别
- 模块级别(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.smoke def 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