• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

python 搞代码 4年前 (2022-01-09) 30次浏览 已收录 0个评论

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

这篇博客准备讲解一下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____")
  ass<em>本文来源gao.dai.ma.com搞@代*码(网$</em>ert 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("函数级别的后置")

执行结果如下

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"])

执行结果如下

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"])

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:python单元测试框架pytest的使用示例

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址