pytest是一个非常成熟的全功能的Python测试框架,与 Python 自带的 unittest 测试框架类似,但是比 unittest 框架使用起来更简洁,效率更高。
Pytest是一个非常成熟的Python测试框架,主要特点有以下几点:
- 非常容易上手,入门简单,文档丰富,文档中有很多实例可以参考
- 能够支持简单的单元测试和复杂的功能测试
- 执行测试过程中可以将某些测试用例跳过(skip),或者对某些预期失败的case标记成失败
- 支持重复执行(rerun)失败的 case
- 支持运行由 nose, unittest 编写的测试 case
- 可生成html 报告
- 方便jenkins持续集成
- 可支持执行部分用例
- 具有很多第三方插件,并且可以自定义扩展
怎么样编写pytest测试用例
- 测试文件以test_开头(以_test结尾也可以)
- 测试类以Test开头,并且不能带有 init 方法
- 测试函数以test_开头
- 断言使用基本的assert即可
pytest的运行规则
1、测试文件的名称必须要以test_*.py的格式,或者*_test.py的格式
2、测试类的名称必须要以Test开头,且这个类还不能有构造方法(__init__)
3、测试函数的名称必须要以test开头
pytest安装方法:
pip install pytest
在pycharm当中使用pytest单元测试框架执行代码过程中,进行切换,具体如下操作:
第一步:
第二步:
第三步:
实例代码(一):
def test_a():
print("第一条测试用例")
def test_b():
print("第二条测试用例")
def test_c():
print("第三条测试用例")
def test_d():
print("第四条测试用例")
-------------------------------------执行结果-------------------------------------
pytestname.py::test_a PASSED [ 25%]第一条测试用例
pytestname.py::test_b PASSED [ 50%]第二条测试用例
pytestname.py::test_c PASSED [ 75%]第三条测试用例
pytestname.py::test_d PASSED [100%]第四条测试用例
============================== 4 passed in 0.50s ==============================
实例代码(二)控制台执行结果:
实例代码(二):
进行断言设置,判断用例是否执行通过
a=10
b=5
def test_a():
print("第一条测试用例")
assert a>b
def test_b():
print("第二条测试用例")
assert a<b
def test_c():
print("第三条测试用例")
assert a==b
def test_d():
print("第四条测试用例")
assert a!=b
实例代码(二)控制台执行结果:
实例代码(二)控制台执行结果详情讲解:
注:只要是出现“AssertionError” 用例就是执行不通过
用例失败:
1、出现了“AssertionError”
2、用例抛出其他异常