文章目录
环境安装
pip install pytest
一、pytest对比unittest
- pytest能自动发现需要执行的测试用例,unittest需要使用.discover方法来指定文件夹
- pytest断言方便,直接使用
assert 1==1
- pytest 使用标签能灵活运行指定的测试用例。
- pytest 前置后置环境管理灵活,会话、模块,fixture等
- 丰富的插件,测试报告。
- 和unittest/nose/pytest兼容
二、pytest运行方式
- 方式一:命令行输入 pytest
- 方式二:使用pycharm以pytest方式运行用例文件
- 方式三:创建一个启动文件:
pytest.main()
运行参数
- 指定测试模块
# pytest 文件名
pytest test_mod.py
- 指定测试目录
# pytest 目录路径
pytest testcase
- 指定测试用例执行
# 测试节点的组成
# pytest py模块名::类名::函数名
pytest test_demo.py::TestLogin::test_login_pass
# pytest py模块名::函数名
pytest test_demo.py::func_test
- 通过关键字表达式国旅执行
# 这条命令会匹配文件名、类名、方法名匹配表达式的用例
pytest -k "MyClass and not method"
- 通过标记表达式执行
# 这条命令会执行被装饰器 @pytest.mark.smoke 装饰的所有测试用例
pytest -m smoke
三、测试用例的规范
发现用例的规则
- 文件test_*.py 和 *_test.py 开头或者结尾
- Test开头的类中test开头的方法
- 模块中test开头的函数
- 注意点:
- pytest是以方法为单位发现用例的,你写不写测试类根本不重要
- 在哪个目录下执行pytest,就在哪个目录下按照上述规则去查找
import pytest
def test_demo():
assert(1=1)
class TestDemo