1.pytest介绍和安装

pytest介绍

pytest是python的一种单元测试框架,与python自带的unittest测试框架类似,但是比unittest框架使用起来更简洁,效率更高

  1. 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考

  2. 能够支持简单的单元测试和复杂的功能测试

  3. 支持参数化

  4. 执行测试过程中可以将某些测试跳过,或者对某些预期失败的case标记成失败

  5. 支持重复执行失败的case

  6. 支持运行由nose, unittest编写的测试case

  7. 具有很多第三方插件,并且可以自定义扩展

pytest安装

执行命令pip install pytest

安装完成后,查看pytest版本:pytest --version

能够看到pytest版本,表示安装成功

第一个pytest案例

# filename:test_01.py
import pytest


def func(x):
    return x + 1


def test_answer():
    assert func(3) == 4

def test_answer1():
    assert func(3) == 5

if __name__ == '__main__':
    pytest.main(['-s','test_01.py'])

 

在test_01.py同级目录下,直接执行pytest

============================= test session starts =============================
platform win32 -- Python 3.7.1, pytest-6.0.2, py-1.9.0, pluggy-0.13.1
rootdir: D:\study\auto-pytest
collected 2 items

test_01.py .F

================================== FAILURES ===================================
________________________________ test_answer1 _________________________________

    def test_answer1():
>       assert func(3) == 5
E       assert 4 == 5
E        +  where 4 = func(3)

test_01.py:13: AssertionError
=========================== short test summary info ===========================
FAILED test_01.py::test_answer1 - assert 4 == 5
========================= 1 failed, 1 passed in 0.08s =========================

 

第一个测试用例passed,第二个测试用例failed

也可使用命令行运行:pytest test_01.py,同样可以执行测试

pytest注意

命名原则

  • 测试用例文件名必须以test_*.py 和*_test.py开头或结尾
  • 如果有类名,必须以Test开头,没有__init__函数,测试方法名以test_开头的函数
  • 没有类,那么以函数为单位的函数名必须以test_开头
  • 文件夹(包名)名可以随意命名
posted @ 2020-09-26 08:34  测试充电宝  阅读(169)  评论(0编辑  收藏  举报