pytest是Python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高。
执行测试过程中可以将某些测试跳过,或者对某些预期失败的case标记成失败
能够支持简单的单元测试和复杂的功能测试
支持重复执行失败的case
支持运行由nose, unittest编写的测试case
具有很多第三方插件,并且可以自定义扩展
方便的和持续集成工具集成
支持参数化
直接上代码
import pytest #测试用例可以直接使用函数,非必要使用类;用例的名称必须包含 test字符串。pytest使用函数执行测试用例基本示例 #函数级别的setup/teardown示例 def setup_function(): print("this is function setup,pre test_case todo") def teardown_function(): print("this is function teardown,post test_case todo") def setup_module(): print("模块级别setup,模块运行前执行") def teardown_module(): print("模块级别teardowm,模块运行后执行") def test_01(): print("this is my pytest_case_01") assert 1 #断言成功 def test_02(): print("this is my pytest case_02") assert 0 #断言失败,用来判断用例是否通过或或失败 #pytest使用类执行测试用例基本示例 class TestClass01: def setup_class(self): print("类的setup,类执行前执行一次") def teardown_class(self): print("类的tear,类执行后执行一次") def setup_method(self): print("方法setup,类方法执行前执行一次") def teardown_method(self): print("方法tear,类方法执行后执行一次") def test_class_01_method_01(self): print("这是测试类的方法01") assert 1 def test_class_01_method_02(self): print("这是测试类的方法02") assert 1 if __name__ == ‘__main__‘: #用例执行的固定模式,直接传入模块名. -s是指输出详细测试结果 pytest.main([‘-s‘, ‘pytest_test_01.py‘]) """ pytest使用步骤 1、导入Pytest 2、编写测试用例 无需再测试类下面编写测试用例,可以直接写测试函数 测试函数名必须以test字符串开始或者结束 3、pytest框架下执行用例 在py文件内执行测试用例 pytest.main(["-s", "模块名.py"]) -s列出详细的测试结果 查看测试结果 .表示用例执行通过 F表示用例执行失败 模块级别和函数级别setup和teardown;setup和teardown的执行不受测试用例的执行失败还是成功影响,即都会执行 setup_function()/teardown_function()在每个测试用例执行前后执行一次(不在测试类中) setup_module()/teardown_module()在模块执行前后分别执行 setup_class/teardown_class()对类执行作用 setup_method/teardown_method()对类中的方法作用 pytest测试类总结 测试类不需要__init__方法 测试类名和测试方法名都需要以test开头或者结尾 执行时可以模块名::类名来选择性执行模块下具体的类 4、pytest的配置文件 pytest运行方式: 主函数中执行:pytest.main(["-s","moudel_name.py"]) 命令行执行:测试用例所在目录下进入命令行D:\Python\pytest_study\pytest_study>pytest -s pytest_test_01.py 来执行用例,项目根目录下pytest 相关参数 执行文件 pycharm中直接在terminal窗口直接执行命令即可(也要注意路径) pytest的配置文件通常放在测试工程根目录下,名称为pytest.ini,命令运行时会使用该配置文件中的参数。配置好以后命令行pytest就可以按照配置文件的要求来执行测试用例了 [pytest] addopts = -s #空格分隔可添加多个命令行参数,所有参数为插件包的参数 testpaths = ./scripts #配置搜索路径,在此路径下搜索用例,可以自定义配置 python_files = test_*.py #路径下搜索以test_开头,py结尾的文件 python_class = Test_* #搜索文件里面的测试类以Test_开头 python_functions = test_* #搜索测试函数名test_靠头 """
原文:https://www.cnblogs.com/flags-blog/p/13912414.html