pytest源码_Pytest基础指南之如何选择unitttest与pytest

下方查看历史精选文章

重磅发布 - 自动化框架基础指南pdf
大数据测试过程、策略及挑战

测试框架原理,构建成功的基石

在自动化测试工作之前,你应该知道的10条建议

在自动化测试中,重要的不是工具

在上篇Pytest基础指南之介绍、环境及安装我们已经初步的介绍了Pytest的概念、环境安装及特色,在本文中,我们将介绍如何利用Pytest来兼容基于unittest所编写的测试代码。

再介绍Pytest兼容基于unittest框架所编写的测试代码前,我们需要先理清unittest和Pytest的区别。

unittest是Python所提供的标准的单元测试框架,而Pytest则是基于unittest所研发出来的更好用的、更易用的测试框架,并且Pytest几乎兼容了unittest的所有特性。

在功能方面,unittest仅提供了基本测试框架能力,对于易用性、可扩展能力、测试报告等等方面显得比较弱。

而pytest则是通过插件和hook的方式,以易用性为本,提供了应对各种场景的插件、以及对框架本身的二次开发能力,非常适合企业级的应用。

苦叶子曰:简而言之,初学者有必要通过学习unittest来理解python技术生态的基础测试框架的原理和机制,但在企业实践中应该应用Pytest来组织大规模的测试用例,以提升效率和质量。

下面通过一张表的对比来具体看下二则的一些简单的区别:

unittest测试框架Pytest测试框架
测试文件可以任意命名测试文件必须以test_开头或_test结尾命名
测试类必须继承unittest.TestCase类名必须以Test开头
测试函数必须以test_开头默认以test开头,可自定义
断言提供了诸如assertEqual等单个断言能力的函数,例如assertEqual(1, 2)直接用assert即可,例如assert 1==2
参数化本质上unittest原生并不提供参数化能力pytest原生提供了参数化的能力,即pytest.mark.parametrize装饰器
报告原生并未提供html报告生成能力提供了pytest-html插件来生成html报告

当然了,第三方有提供了一些能力来支持、扩展unittest的能力,但就其企业级的应用来讲,是远远不足的。

一直以来,苦叶子都是极力推荐大家,初学习阶段应该深入学习和理解unittest的源码、原理和机制,然后在工作中去学习、应用pytest,这并不是什么矛盾的事。

因为unittest作为python的标准库,本身就承担了让大家学习和掌握原理的责任,掌握标准测试框架unittest也是python学习必须经历的阶段。

3885ffd1ada92e1ba41d3874c9e09fde.png cd0f17db60f06f45c294e58cb0125f54.png 微信搜一搜 或 长按关注公众号 3300d26bceb2cd35db81c85262f39d7a.png 开源优测 通过微信号: DeepTest1912 找到苦叶子,注明加群!!!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值