pytest 单元测试,搭建pytest测试框架

  pytest 单元测试,搭建pytest测试框架

  本文介绍python的单元测试框架pytest,通过示例代码对其进行了非常详细的介绍。对大家的学习或者工作都有一定的参考价值,有需要的朋友可以参考一下。

  Py是python语言中功能强大的单元pytesting框架,用于管理和组织测试用例,可应用于单元测试和自动化测试。

  Unittest也是python语言的单元测试框架,但是功能有限,没有pytest灵活。

  就像:苹果mac air和mac pro。都是一样的功能,但是好用,更好用。

  这篇文章包含以下几点:

  1)pytest的简单例子2)pytest的安装3)pytest的特点及其与unittest的区别。pytest如何自动识别用例。5)在5)pytest框架中,用例的运行顺序。

1)pytest写用例很简单

 

  这里有一个简单的例子:

  随机导入

  def测试_演示():

  assert 7==random.randint(0,10)

  运行结果如下:

  ==========================测试会话开始=========================

  平台win32 - Python 3.7.2,pytest-4.6.3,py-1.8.0,pluggy-0.12.0

  rootdir :d : Pychram-Workspace STUDY _ py test

  插件: allure-pytest-2.6.5,html-1.21.1,元数据-1.8.0,rerunfailures-7.0收集了1个项目

  简单. py F

  simple.py:10(测试_演示)

  7 !=6

  预期:6

  实际:7

  ========================0.14秒1失败========================

  

2)pytest的安装

 

  安装命令:

  pip安装pytest

  

3)pytest的特征、与unittest的区别。

 

  Py的特征如下:

  3.1测试用例的自动识别。(在unittest中,需要引入TestSuite来主动加载测试用例。)3.2简单断言表达式:断言表达式就够了。(在unittest中,self.assert*)3.3在测试会话、测试模块、测试类和测试函数级别都有fixture。(unittest是测试类和测试函数级的fixture)3.4有非常丰富的插件,目前在600个,比如allure插件。(unittest None) 3.5测试用例不需要封装在测试类中。(unittest需要自定义类,继承TestCase)那么pytest是如何自动识别测试用例的呢?在编写pytest用例时,我们需要遵循哪些规则?

  

4) pytest如何自动识别用例

 

  识别规则如下:

  1.搜索根目录:默认从当前目录收集测试用例,即会搜索pytest命令运行的目录;

  2.搜索规则:

  1)搜索文件:符合命名规则test_*的文件。py或* _ test.py

  2)在满足1)的文件中识别用例的规则:

  2.1)以test_开头的函数名;2.2)以Test开头的测试类中(没有__init__ function),以test_开头的函数示例:在D:pycharm_workspace目录中,创建一个名为study_pytest的python项目。在Project下,创建一个名为TestCases的python包。

  在包中,创建一个测试用例文件:test _ sample _ 1.py,文档内容如下:

  #!/usr/bin/python3

  # -*-编码: utf-8 -*-

  #在py文件下定义测试用例

  定义测试样本():

  打印(我是一个测试用例!)

  类TestSample:

  def test_ss(自我):

  打印(我也是测试用例!)

  def hello_pytest(self):

  print(‘嗨,pytest,我不是用例!)

  根据上面定义的搜索规则,需要跳转到项目目录,然后执行命令:pytest -v v .执行结果如下:

  让我们愉快地添加第二个测试文件:test_sample_2.py,内容如下:

  #!/usr/bin/python3

  # -*-编码: utf-8 -*-

  def add(a *,args):

  总和=a

  对于args:中的项目

  总和=项目

  返回总和

  def test_add_two_number():

  assert 33==add(11,22)

  断言55.55==add(22.22,33.33)

  def测试_添加_三个_编号():

  断言101==add(10,90,1)

  再次运行命令:pytest -v以获得以下结果:

  通过多个用例文件的执行,我们可以看到用例的执行顺序。

  

5) pytest中用例的执行顺序

 

  原理:先搜索py文件中的用例,先执行。在同一个py文件中,根据代码顺序,首先执行第一个搜索到的用例。

  关于python单元测试框架pytest的这篇文章到此为止。希望对大家的学习有所帮助,也希望大家能支持盛行的IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: