1、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
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
pytest入坑到放弃3--setup\teardown(前置\后置)
原文:https://www.cnblogs.com/xiaohuboke/p/13517574.html