快速入门

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")
View Code

相关文章: