美文网首页
什么是单元测试界的高富帅?

什么是单元测试界的高富帅?

作者: 蜀山客e | 来源:发表于2020-11-09 15:32 被阅读0次

pytest是python语言中一款强大的单元测试框架,用来管理和组织测试用例,可应用在单元测试、自动化测试工作中。

unittest也是python语言中一款单元测试框架,但是功能有限,没有pytest灵活。

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

本文包含以下几个内容点:

1)pytest的简单示例

2)pytest的安装

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

4)  pytest如何自动识别用例。

5)pytest框架中,用例的运行顺序。
1)pytest写用例很简单,下面是一个简单的例子:
1 import random
2 
3 
4 def test_demo():
5     assert 7 == random.randint(0,10)

运行结果如下:

<pre>============================= test session starts ============================= platform win32 -- Python 3.7.2, pytest-4.6.3, py-1.8.0, pluggy-0.12.0
rootdir: D:\Pychram-Workspace\STUDY_PYTEST
plugins: allure-pytest-2.6.5, html-1.21.1, metadata-1.8.0, rerunfailures-7.0collected 1 item

simple.py F
simple.py:10 (test_demo) 7 != 6 Expected :6
Actual   :7

========================== 1 failed in 0.14 seconds ===========================</pre>

2)pytest的安装

 安装命令:pip install pytest

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

pytest的特征如下:

3.1  自动识别测试用例。(unittest当中,需要引入TestSuite,主动加载测试用例。)

3.2  简单的断言表达:assert 表达式即可。(unittest当中,self.assert*)

3.3  有测试会话、测试模块、测试类、测试函数级别的fixture。(unittest当中是测试类、测试函数级别的fixture)

3.4 有非常丰富的插件,目前在600+,比如allure插件。(unittest无)

3.5 测试用例不需要封装在测试类当中。(unittest中需要自定义类并继承TestCase)

那么pytest是如何自动识别测试用例的呢?我们在编写pytest用例的时候,需要遵守哪些规则呢?

  1. pytest如何自动识别用例

识别规则如下:

1、搜索根目录:默认从当前目录中搜集测试用例,即在哪个目录下运行pytest命令,则从哪个目录当中搜索;

2、搜索规则:

    1)搜索文件:符合命名规则 test_*.py 或者 *_test.py 的文件

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

          2.1)以test_开头的函数名;

          2.2)以Test开头的测试类(没有__init__函数)当中,以test_开头的函数

示例:在D:\pycharm_workspace目录下,创建一个python工程,名为study_pytest。在工程下,创建一个python包,包名为TestCases。

        在包当中,创建一个测试用例文件:test_sample_1.py。文件内容如下:
1 #!/usr/bin/python3
 2 # -*- coding: utf-8 -*-
 3 # Name: test_sample_1.py
 4 # Author: 简
 5 # Time: 2019/6/27
 6 
 7 # 定义py文件下的测试用例
 8 def test_sample():
 9     print("我是测试用例!")
10 
11 class TestSample:
12 
13     def test_ss(self):
14         print("我也是测试用例!")
15 
16     def hello_pytest(self):
17         print("hi,pytest,我不是用例哦!!")

按照上面定义的搜索规则,需要跳转到工程目录,然后再执行命令:pytest -v 。 执行结果如下:

让我们愉快的加进来第2个测试文件:test_sample_2.py,内容如下:

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Name: test_sample_2
# Author: 简
# Time: 2019/6/27

def add(a,*args):
    sum = a
    for item in args:
        sum += item
    return sum


def test_add_two_number():
    assert 33 == add(11,22)
    assert 55.55 == add(22.22,33.33)


def test_add_three_number():
    assert 101 == add(10,90,1)

再次运行命令:pytest -v 得到如下结果:


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

  1. pytest中用例的执行顺序

原则:先搜索到的py文件中的用例,先执行。在同一py文件当中,按照代码顺序,先搜索到的用例先执行。

如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以加入我们。642830685,免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。

相关文章

  • 什么是单元测试界的高富帅?

    pytest是python语言中一款强大的单元测试框架,用来管理和组织测试用例,可应用在单元测试、自动化测试工作中...

  • “高富帅白富美”要从娃娃抓起

    现在越来越多的人定义高素养高智商高颜值的人为‘高富帅白富美’,到底什么是高富帅白富美?高富美白富美为什么要从娃娃抓...

  • 三观超正的父母

    儿子问爸爸:爸爸,爸爸,什么是高富帅? 爸爸告诉他: 高——高等的教育和学历; 富——富有的三观和道德; 帅——帅...

  • 喜欢一个人需要理由吗?

    好闺蜜喜欢上一个高富帅,准确的说是正在和一个高富帅暧昧!闺蜜很喜欢高富帅,高富帅对闺蜜的态度也还算的上是...

  • 不该凋谢的玫瑰(6)

    每一个女孩子都希望自己的白马王子是个高富帅,李小冉也不例外。吴剑锋就是一个标准的高富帅,可高富帅也有高富帅...

  • 什么是完美?

    什么是完美? 不同的人对于完美的诠释有所不同,高富帅,白富美算不算完美?如果你觉得高富帅,白富美的人生很完美,那么...

  • 男人,如何让妹子觉得你是潜力股

    一为什么女人喜欢高富帅? 准确来说,并非所有女人都会选择高富帅,但不可否认女人更容易被高富帅身上的特质所吸引。从一...

  • 我对你一见钟情

    你,是一个高富帅。 高在科技,高在速度。 富在资源,富在美景。 帅…哪哪都帅(其实用美更贴切)。 是你是你就是你,...

  • 2020-01-是个

    高富帅个 是

  • 为什么你追妹子就是那么难?

    夭寿啦,为什么他是高富帅,我也是高富帅,妹子就是不选我; 夭寿啦,为什么同样是穷矮丑,我是单身狗,他们竟然有妹子?...

网友评论

      本文标题:什么是单元测试界的高富帅?

      本文链接:https://www.haomeiwen.com/subject/acxqbktx.html