快速入门
pytest是Python的单元测试框架,同自带的unittest框架类似,但pytest框架使用起来更简洁,效率更高。
pytest特点
- 入门简单易上手,文档支持较好。
- 支持单元测试和功能测试。
- 支持参数化。
- 可以跳过指定用例,或对某些预期失败的case标记成失败。
- 支持重复执行失败的case。
- 支持运行由unittest编写的测试用例。
- 有很多第三方插件,并且可自定义扩展。
- 方便和支持集成工具进行集成。
安装
pip install pytest
测试
C:\Users\Anthony>pytest --version This is pytest version 5.2.2, imported from c:\python36\lib\site-packages\pytest.py
在测试之前要做的准备
演示脚本处于这样一个的目录中:
M:\py_tests\ # 我的是M盘的 py_tests 目录,所有操作都在 py_tests 目录内完成 ├─scripts │ ├─test_case_dir1 │ │ ├─test_case_02.py # 用例脚本文件 │ │ └─__init__.py │ ├─test_allure_case.py # 脚本文件 │ ├─test_case_01.py # 脚本文件 │ └─__init__.py ├─report │ ├─report.html # pytest-html生成的用例报告 │ ├─assets # allure的依赖目录 │ ├─result # allure生成的用例数据 │ └─allure_html # allure生成的用例报告目录 | └─index.html # allure生成的最终的html类型的测试报告 ├─case_set.py ├─demo0.py # 用例脚本文件 ├─demo1.py # 用例脚本文件 ├─pytest.ini # 配置文件 └─__init__.py
简单示例
demo1.py:
import pytest def test_case01(): print('执行用例01.......') assert 0 # 断言失败 def test_case02(): print('执行用例02.......') assert 1 # 断言成功 def custom_case03(): print('执行用例03.......') assert 1 # 断言成功 if __name__ == '__main__': pytest.main(["-s", "demo1.py"]) # pytest.main("-s demo1.py")