pytest是第三方库,使用前要先进行安装 pip install pytest
pytest单元测试框架的核心功能:
- 收集用例:进入目录,运行pytest
- 指定用例函数的定义规则:要以test开头的用例,支持普通函数,测试类
- 自动执行用例:如果不能识别,需要修改pycharm默认的执行器改成pytest
- 前置和后置夹具
- 断言:pytest直接用关键字assert 表达式
- 生成测试报告 :pytest --html=报告名称
1.编写测试用例
pytest用例编写规则很灵活:
- 直接定义函数,不需要测试类
- 编写测试类,不继承 unittest.TestCase
- 编写测试类,继承 unittest.TestCase,可以直接迁移(兼容)
前两种方法前面没有运行播放键,所以我们需要去修改pycharm默认的执行器
点击【File】-->【Settings】-->【Tools】-->【Python Integrated Tools】-->
找到【Default test runner】点击下拉框选择pytest
设置完成后再查看,三种方法前面都有运行播放键
2.执行测试用例
2.1命令执行测试用例
相比unittest来说,pytest不用编写特意收集用例的代码,进入相应目录执行命令即可
进入项目的目录执行运行用例时,收集的是整个项目下所有的用例,而进入指定的cases包下执行运行用例时,收集的用例只量这个cases包下的用例数量
2.2代码执行测试用例
run.py模块位置放在哪,执行的就是这个包下所有以test开头的模块的测试用例
修改run.py代码如下:(根目录下的run.py)
import pytest
# 收集并且运行用例
pytest.main()
运行结果:
修改run.py代码如下:(cases目录下的run.py)
运行结果:
3.断言
pytest中没有assertEqul,只有aseert,这个是经过pytest进行了封装后的关键字,相比unittest使用简单,不用写self