pytest和unittest框架的区别

1、用例设计对比

1.1 unittest

  • 测试类必须继承unittest.TestCase
  • 测试函数必须以"test_"开头
  • 测试类必须有unittest.main()方法

1.2 pytest

  • 测试文件的文件名必须以"test"开头,或者以"test"结尾
  • 测试类命名必须以"Test"开头
  • 测试函数名必须以"test"开头
  • 测试类里面不能使用__init__ 方法

总结:pytest是基于unittest衍生出来的新的测试框架,使用起来相对于unittest来说更简单、效率来说更高,pytest兼容unittest测试用例,但是反过来unittest不兼容pytest,所以说pytest的容错性更好一些!在使用交互逻辑上面pytest比unittest更全一些!

2、断言对比

2.1 unittest

assertEqual(a, b) 判断a和b是否相等
assertIn(a, b) 判断a是否是b的子串

2.2 pytest

pytest只需要用assert 来断言就行,assert 后面加需要断言的条件就可以了,例如:assert a = = b 判断a是否等于b

总结:从断言上面来看,pytest的断言比unittest要简单些,unittest断言需要记很多断言格式,pytest只有assert一个表达式,用起来比较方便

3、前置和后置函数

  • unittest的前置和后置没有pytest的前置后置灵活,unittest的包括类和方法级别的
  • pytest包括函数级别的,类级别的,方法级别的,模块级别的,除此之外还可以通过@pytest.fixture()去进行单独定义。

4、参数化

  • unittest:需要借助第三方包,ddt来进行实现
  • pytest:通过装饰器@pytest.mark.parametrize来实现

5、报告

  • unittest :通过HTMLTestRunner生成报告
  • pytest:
    a. 通过pytest-html生成html格式报告
    b. 通过allure生成方案(很详细)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值