pytest 配置allure pytest setup teardown
转载
作为一名Python开发人员,您一定知道Pytest是一个广泛使用的Python测试框架。
它具有易用性和灵活性,可以帮助您快速编写测试用例,并且能够支持包括单元测试、集成测试、功能测试等多种测试类型。而其中,setup和teardown函数是Pytest提供的两个非常重要的特性。
setup和teardown函数可以分别在每个测试用例之前和之后执行,以确保测试环境的准备和清除工作。通过合理使用这两个函数,您可以有效地提高测试效率,并且避免测试用例之间的相互干扰。
本篇文章将详细介绍setup和teardown函数的作用及使用方法,让您轻松掌握这两个关键特性,为您的测试工作注入动力!
Pytest - setup 和 teardown
- 执行用例肯定有些需要前置条件或后置操作,例如前置的用户登陆,后置的清理数据等操作;
- unittest提供了两种前置(setup、setupClass)和两种后置(teardown、teardownClass);
- 相比之下,pytest 提供了十种
setup
和 teardown
方法:
• 模块级别:setup_module、teardown_module
• 函数级别:setup_function、teardown_function,不在类中的方法
• 类级别:setup_class、teardown_class
• 方法级别:setup_method、teardown_method
• 用例级别:setup、teardown
test_py.py
| import
|
| |
| def setup_module():
|
| print("\n!!!! setup_module > 整个.py模块开始前只执行一次:打开浏览器/获取cookie !!!!")
|
| |
| def teardown_module():
|
| print("!!!! teardown_module > 整个.py模块结束后只执行一次:关闭浏览器 !!!!")
|
| |
| |
| def setup_function():
|
| print("\n### setup_function > 每个函数级别用例开始前都执行 ###")
|
| |
| def teardown_function():
|
| print("### teardown_function > 每个函数级别用例结束后都执行 ###")
|
| |
| |
| def test_one():
|
| print("test case 1")
|
| |
| def test_two():
|
| print("test case 2")
|
| |
| |
| class TestCase():
|
| def setup_class(self):
|
| print("\n^^^ setup_class > 整个测试类开始前只执行一次 ^^^")
|
| |
| def teardown_class(self):
|
| print("^^^ teardown_class > 整个测试类结束后只执行一次 ^^^")
|
| |
| def setup_method(self):
|
| print("\n=== setup_method > 类里面每个用例执行前都会执行 ===")
|
| |
| def teardown_method(self):
|
| print("=== teardown_method > 类里面每个用例结束后都会执行 ===")
|
| |
| def setup(self):
|
| print("--- setup > 类里面每个用例执行前都会执行 ---")
|
| |
| def teardown(self):
|
| print("--- teardown > 类里面每个用例结束后都会执行 ---")
|
| |
| |
| def test_three(self):
|
| print("test case 3")
|
| |
| def test_four(self):
|
| print("test case 4")
|
| |
| if __name__ == '__main__':
|
| pytest.main(["-q", "-s", "-ra", "test_py.py"])
|
| |
- 执行结果如图所示各级别(讲解顺序从上往下,级别从低到高):
- 黄色框:用例级别 【setup、teardown】
- 橙色框:方法级别【setup_method、teardown_method】
- 蓝色框:类级别【setup_class、teardown_class】
- 绿色框:函数级别【setup_function、teardown_function】
- 红色框:模块级别【setup_module、teardown_module】
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。