python单元测试框架pytest的使用示例

首先祝大家国庆节日快乐,这个假期因为我老婆要考注会,我也跟着天天去图书馆学了几天,学习的感觉还是非常不错的,这是一篇总结。

这篇博客准备讲解一下pytest测试框架,这个框架是当前最流行的python语言最流行的单测框架,不掌握可不行,首先这个框架属于第三方模块,需要通过pip安装即可

pip install pytest

下面我们进入正题

一、介绍pytest的运行规则

1、测试文件的名称必须要以test_*.py的格式,或者*_test.py的格式

2、测试类的名称必须要以Test开头,且这个类还不能有构造方法(__init__)

3、测试函数的名称必须要以test开头

pytest默认的就按照上面的三条规则来执行案例,当然我们可以自定义运行规则,这个我们后面在讲,这个不重要,看一个最简单的例子

import os
import pytest
 
# pytest是python的单元测试框架
 
def func(x):
  return x + 1
 
 
def test_a():
  print("____test_a____")
  assert func(2) == 5
 
def test_b():
  print("____test_b____")
  assert func(2) == 3
 
if __name__ == '__main__':
  pytest.main(["-s","pytest1.py"])

二、介绍pytest的前置条件和后置条件,类似unittest的testfixture(测试固件)

如果同学们之前用过unittest测试框架,对测试固件这个这个名词就不会陌生了,如果不清楚,可以看下之前我写的unittest测试框架的博客(https://www.cnblogs.com/bainianminguo/p/11616526.html)

pytest框架的测试固件有两种,一种函数级别的,一种是类级别,执行的顺序如下

a、执行类的前置条件

b、执行函数的前置条件

c、执行函数的后置条件

d、执行类的后置条件

使用也非常简单,当时函数的命名一定要和我下面的备注保持完全一致

# pytest的前置和后置条件
 
# 1、函数级别 setup teardown
# 运行于测试方法的开始和结束
# 运行一个测试用例,会运行一次setup和teardown
 
# 2、类级 setup_class  teardown_class
# 运行于测试类的开始和结束
# 一个测试类只运行一次setup_class teardown_class

1、函数式的案例--函数级别的前置条件&后置条件

import os
import pytest
 
def func(x):
  return x + 1
 
 
def test_a():
  print("____test_a____")
  assert func(2) == 5
 
def test_b():
  print("____test_b____")
  assert func(2) == 3
 
 
def setup():
  print("函数级别的前置")
 
def teardown():
  print("函数级别的后置")

执行结果如下

python单元测试框架pytest的使用示例

2、类式的案例--函数级别的前置条件&后置条件

class Testclass:
  def test_a(self):
    print("____test_a____")
    assert func(2) == 5
 
  def test_b(self):
    print("____test_b____")
    assert func(2) == 3
 
  def setup(self):
    print("函数级别的前置")
 
  def teardown(self):
    print("函数级别的后置")
if __name__ == '__main__':
  pytest.main(["-s","pytest2.py"])

执行结果如下

python单元测试框架pytest的使用示例

3、类级别的前置条件&后台置条件

import pytest
 
def func(x):
  return x + 1
 
 
class Testclass:
  def test_a(self):
    print("____test_a____")
    assert func(2) == 5
 
  def test_b(self):
    print("____test_b____")
    assert func(2) == 3
 
  def setup(self):
    print("函数级别的前置")
 
  def teardown(self):
    print("函数级别的后置")
   
  def setup_class(self):
    print("类级别的前置")
 
  def teardown_class(self):
    print("类级别的后置")
if __name__ == '__main__':
  pytest.main(["-s","pytest3.py"])

结果如下

python单元测试框架pytest的使用示例

三、介绍如何修改pytest的配置文件

我们在博客的第一部分介绍了pytest框架的运行规则,这里我们可以修改pytest的配置文件,改变框架运行规则

首先我们要在案例的目录下创建一个pytest.ini的配置文件

python单元测试框架pytest的使用示例

python单元测试框架pytest的使用示例

扫一扫手机访问