unittest和pytest的区别

pytest为第三方单元测试库,需额外安装;unittest为标准库,无需额外安装。其余不同可以分成用例管理,参数化,断言对比,报告4个方面来总结。

目录

一、用例管理

二、参数化

三、断言对比

四、生成报告的方式


一、用例管理

  1. 标记testCase的方法

    unittestpytest
    测试类必须继承unittest.TestCase测试类命名以"Test"开头,但是无需继承,用例可以是函数,也可以是类
    测试方法必须以“test_”开头测试方法必须以“test_”开头
    测试类必须要有unittest.main()方法测试文件名必须以“test_”开头或者"_test"结尾(如:test_ab.py)
  2. 用例的前置和后置条件处理

    unittestpytest
    unittest提供了setUp/tearDown,每个用例运行前、结束后运行一次。setUpClass和tearDownClass,用例执行前、结束后,只运行一次pytest提供了模块级、函数级、类极、方法级的setup/teardown,比unittest的setup/tearDown更灵活
  3. 用例分类

    unittestpytest
    unittest默认执行全部用例,也可以通过加载testsuit,执行部分用例pytest可以通过@pytest.mark来标记类和方法,pytest.main加入参数("-m")可以只运行标记的类和方法
  4. 用例可否失败重试

    unittestpytest
    unittest无此功能pytest支持用例执行失败重跑,pytest-rerunfailures插件pip install pytest-rerunfailures
  5. 兼容性
    pytest可以执行unittest风格的测试用例,无须修改unittest用例的任何代码,有较好的兼容性

  • 二、参数化

  • unittestpytest
    unittest需依赖ddt库pytest直接使用@pytest.mark.parametrize装饰器

    三、断言对比

    unittestpytest
    unittest提供了assertEqual、assertIn、assertTrue、assertFalsepytest直接使用assert 表达式

    四、生成报告的方式

    unittestpytest
    unittest使用HTMLTestRunnerNew库pytest有pytest-HTML、allure插件

 转自:https://www.cnblogs.com/stxz/p/16218187.html

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值