unittest和pytest的区别

  1. unittest单元测试框架集合Testcase(编写用例)、testloader(discover方法加载测试用例)、testsuite(测试套件)、testRunner(run方法运行测试用例)、fixture(前置后置)

  2. 编写测试用例的规则不同:
    unittest:文件名需要“test_”开头,类名以“Test”开头,方法名需要“test_”开头;
    pytest:文件名需要“test_”开头或者下划线test结尾,类名以“Test”开头,方法名需要“test_”开头,,,不能有"init"方法

  3. 数据驱动思想不同:
    unittest首先需要测试文件import unittest、ddt、data;类名@ddt且继承unittest的TestCase,方法名@data(*cases),data用于接收传入的每一组测试用例数据;
    pytest方法名直接用@pytest.mark.parametrize(“参数名:命名自定义”,测试数据)装饰器

  4. 前后置不同:
    unittest前后置:setup(self):每个测试方法前运行、setupclass(cls):所有测试方法前运行、teardown(self):每个测试方法后运行、teardownclass(cls):所有测试方法后运行
    pytest前后置:首先文件必须以“conftest”命名,方法需要@pytest.fixture来声明是一个测试夹,有不同作用域(function、class、module、session)的fixture;前后置用关键字“yield”来区分
    function:方法和函数(默认)、class类、module模块、session会话:全局配置操作;返回值是函数名;如果是不同的作用域,低级别的可以调用高级别的,可以嵌套高级别的以及同级别的,反过来不行;

  5. 断言不同:
    unittest断言:方法有assertIn、assertEqual、assertTrue等等
    pytest断言:只需要用assert直接断言

  6. 收集测试用例不同:
    unittest需要通过TestLoader的discover方法去收集测试用例
    pytest直接通过pytest的main方法直接加载符合规则的测试用例

  7. 插件不同:
    unittest是没有插件的
    pytest有丰富的allure插件,里面有丰富的报告

注解:欢迎补充!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值