python命令行式的优缺点_Pytest VS Unittest 简单说一下之间的优缺点

一、什么是单元测试框架?

unittest 是python标准的单元测试框架模块

pytest 是python第三方库的测试框架

二、从兼容性方面考虑

因unnitest是标准库,所以unnitest的兼容性更强

三、安装方面

unnitest是标准库,python是自带的,安装python以后可以直接导入

第三方库:需要独立安装,要注意兼容性,有可能会存在安装不成功,或者是某些库的功能使用不了。

四、unittest 的使用更加复杂一些, pytest 更加容易使用。

eg:

unittest

第一步:初始化测试套件

获取当前目录,

第二部:testloader.discover(test_case_dir), 加载测试用例

第三部:测试用例添加到测试套件

#生成测试报告的目录和文件名

第四步:启动器, 运行, testrunner.run()

pytest , 自动收集测试用例,自动执行测试用例。

pytest 运行:

1, pytest.main() python: 代码形式. 生产环境。

2, 命令行的形式 : 在项目根目录下运行 pytest 命令

3, pycharm 右键运行(如果pycharm 没有出现 pytest 命令,run. configraiton 当中进行配置。)

五、断言

pytest    assert 1=1

unittest  assertEqual(expected,autual)

六、pytest可以灵活运用指定的测试用例,标签化,回归,正向、冒烟、登陆

七、pytest (夹具)环境管理灵活,会话、模块,哪个用,哪个不用。fixture,setup,tearDown,setupClass,setUpModule

八、pytest有丰富的插件,测试报告。eg: allure

九、pytest 和unnitest/nose兼容 意思是以unnitest的框架写的用例,以pytest去执行是可以的,但是反之就不行。

十、pytest发现用例的格式为:

pytest 收集测试用例的规则(pytest 将怎样的函数看成是测试用例)

1, 模块名: test_*.py 或者是 *_test.py

2, 类名: TestLogin

3,   方法名: test_

4,   pytest 的测试用例并不一定要以类的形式存在,可以直接以函数的形式存在:

def test_demo():

pass

5.类形式:

class TestYang:

# 不要写 __init__() 函数, 容易报错

def test_yangleduo(self):

pass

当在哪个文件夹,(目录)执行 pytest 指令,那么 pytest 会自动发现当前目录下所有

test_ 开头的 py 文件,将这些文件当成测试用例文件.

unnitest 不能找到直接以函数的形式存在的用例

原文:https://www.cnblogs.com/yannuo-666/p/13089744.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: unittestpytest 都是 Python 中常用的测试框架,它们各有优缺点。以下是它们的比较: unittest 的优点: - 自带于 Python 标准库中,使用方便,无需安装额外的库 - 功能丰富,支持测试用例组织、测试报告输出、断言等 - 可以在多个测试方法之间共享设置和资源 - 对于较小的项目或简单的测试用例,unittest 可以提供基本的测试功能 unittest缺点: - 需要编写大量的样板代码,因为它需要在每个测试方法中显地定义测试用例和测试套件 - 测试报告的输出比较简单,不够易读 - 运行速度相对较慢 pytest 的优点: - 使用方便,无需编写样板代码,测试方法会自动被识别为测试用例 - 测试报告的输出更加丰富、易读 - 可以扩展功能,例如支持参数化测试和插件 - 运行速度相对较快,特别是在大型项目中 pytest缺点: - 需要安装额外的库 - 有一些特殊的语法和概念,需要一定的学习成本 综上,unittest 适用于简单的测试任务,而 pytest 更适合于复杂的测试需求和大型项目。选择哪个测试框架取决于个人的需求和偏好。 ### 回答2: 单元测试是软件开发过程中不可或缺的部分,unittestpytest都是Python中常用的单元测试框架。下面我们将它们的优缺点进行一一对比: unittest优点: 1. unittestPython自带的单元测试框架,无需安装额外的依赖包,使用起来非常方便; 2. unittest提供了丰富的断言方法,可以对多种数据类型进行比较测试,测试结果更为准确; 3. unittest支持测试用例集合,可以方便地管理和执行多个测试用例,增强了测试用例的可维护性; 4. unittest具有良好的文档和社区支持,可以快速解决使用过程中的问题。 unittest缺点: 1. unittest的语法较为繁琐,编写测试用例时需要编写较多的样板代码,增加了编码难度; 2. unittest没有支持参数化测试的功能,无法很好地进行测试用例的复用; 3. unittest需要手动编写setUp()和tearDown()方法,耗费时间和精力,特别是测试用例数量较多时更为明显。 pytest优点: 1. pytest具有更易懂,更简洁的语法,同时又提供了更多的内置断言,可用作表达,可读性更好,非常适合初学者使用; 2. pytest支持丰富的插件,可用于生成测试数据,构建测试环境,并能够为测试结果提供更多的分析信息; 3. pytest支持参数化测试功能,可以避免重复编写测试用例,提高了测试用例的复用性; 4. pytest具有失败重试机制,这是unittest没有的特点。 pytest缺点: 1. pytest需要手动安装,其安装过程相对unittest较为繁琐; 2. pytest不太稳定,有时会出现兼容性问题,需要及时更新版本以避免影响使用; 3. pytest不如unittest稳定,其错误信息有时候可能不够准确,特别是在遇到期待异常的测试用例时。 综上所述,unittestpytest都是Python中好用的单元测试框架,选择哪一个框架,应根据自己的具体需求以及项目的实际情况进行选择。如果需要使用Python自带的测试框架,并且测试用例数量有限,那么unittest是不错的选择。如果测试用例数量较多,测试覆盖范围较广或者需要使用测试数据生成工具等插件,那么pytest是更好的选择。 ### 回答3: unittestpytest 都是 Python 中常用的测试框架,unittest 自 2.1 版本起 Python 已经内置此框架,并且可以支持测试类、测试方法等,pytest 支持的功能比 unittest 更加丰富,而且更加易于使用,并且易于扩展,两者相比,各有优缺点unittest 优点: 1. Python 自带:可以使用标准库中 unittest 模块,无需安装额外的依赖。 2. 框架稳定:unittest 已经成熟了很多年,所以它的稳定性被很多人所认可,并且也可以扩展,支持钩子函数。 3. 功能丰富:支持面向对象的测试,可以对多个测试进行组织和管理。 4. 兼容性强:能够用于 Python2.x 和 Python3.x,同时支持其他语言的测试。 unittest 缺点: 1. 使用较为复杂,需要一定的学习成本,而且不够灵活。 2. 测试代码的编写过于冗长,有时候注重测试的覆盖率反而会牺牲代码的可读性和可维护性。 3. 需要一定的编写经验。 pytest 优点: 1. 更加易于使用:pytest 更加直观和人性化,不需要写过多的代码,依赖于概念和约定。 2. 功能丰富:pytest 支持断言、参数化、mock、x-dist、x-doctest 等多种功能。 3. 代码简洁:pytest 对于测试代码有很好的优化,让测试代码的编写变得更加精简,易于阅读和维护。 4. 可扩展:可定制,具有插件机制,可以在官方的扩展之外,通过自定义插件来增强 pytest 的能力。 5. 灵活性高:pytest 可以组合 unittest 的测试。 pytest 缺点: 1. 不直接支持 unittest 的测试实例,但 pytest 可以运行 unittest cases。 2. 依赖比 unittest 多,需要安装额外的依赖。 3. 了解的人员仍然过少,不够普及。 综上,unittestpytest 各有其优势和劣势,选择哪个框架需要根据实际情况和项目需求来决定。在大多数情况下,pytest 更加适合日常开发,并且很多公司在新项目中更倾向于选择 pytest 作为测试框架。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值