unittest框架和pytest框架区别及示例

unittest框架和pytest框架区别及示例

类型 unittest框架 pytest框架 unittest框架示例 pytest框架示例
安装 python内置的一个单元测试框架,标准库,不需要安装 第三方单元测试库,需要安装 使用时直接引用 import unittest 安装命令:pip3 install pytest,使用时直接引用import pytest
用例编写规范 1. 测试类必须继承 unittest.TestCase,2. 测试方法必须test开头命名 1. 测试模块以 test_ 开头命名如:test_login.py,或以 _test 结尾,2. 测试类必须以Test开头命名,且测试类中不能有 init 方法,3. 测试方法/测试函数:必须以test开头 在这里插入图片描述 在这里插入图片描述
执行方式 1. unittest和pytest框架都可以在文件里和终端执行, 2. unittest和pytest执行方式并不依赖终端和文件内的命令,后期会单独创建一个main执行入口文件来执行(这里了解即可,先当测试使用) 在这里插入图片描述 1. 文件内执行:pytest.main([‘-s’,‘-v’]),2. 终端执行:pytest -s -v
执行顺序 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述
筛选用例 可以通过筛选函数名、类名、模块名执行 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述
前置和后置 提供了setUp/tearDown,每个用例运行前、结束后运行一次。setUpClass和tearDownClass,所有用例执行前、结束后,只运行一次 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述
收集用例 使用unittest.TestSuite()套件收集测试用例,再通过TestLoader()加载器:可以加载类,加载模块名执行 创建 py 文件命名以 test_开头或者_test 结尾文件自动收集用例,例如: test_login.py login_test.py 在这里插入图片描述 在这里插入图片描述
断言 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述
参数化 在这里插入图片描述 直接使用@pytest.mark.parametrize装饰器,例如:@pytest.mark.parametrize(“case”,test_data) #case :变量名 item:测试数据 test_data 在这里插入图片描述 在这里插入图片描述
测试报告 1. 使用unittest自带的测试报告格式 2. 使用HTMLTestRunnerNew库,需要额外安装 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述
重运行机制 1. unittest不支持,2. 可以参考unittestreport扩展库支持重运行机制,安装命令: pip install unittestreport 通过插件rerunfailures支持重运行机制,安装命令:pip install pytest-rerunfailures,例如(指定标签失败用例–运行2次间隔为5秒后):pytest -m smoke --reruns 2 --reruns-delay 5 在这里插入图片描述
运行 一般都会单独写一个main执行入口文件,有两种运行 1. 使用unittest自带的runner,2. 结合HTMLTestRunnerNew插件运行 通过main入口文件执行命令,也可以通过终端命令执行 在这里插入图片描述 在这里插入图片描述
插件 比unittest插件相对多很多,目前有600+,比如allure插件

相关推荐

  1. 如何选择Python测试框架pytestunittest

    2024-07-22 10:46:03       23 阅读
  2. Python自动化测试:unittestpytest框架

    2024-07-22 10:46:03       39 阅读
  3. Python单元测试框架unittestpytest的深度对比

    2024-07-22 10:46:03       25 阅读
  4. python&UnitTest框架

    2024-07-22 10:46:03       58 阅读
  5. pytest框架

    2024-07-22 10:46:03       50 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 10:46:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 10:46:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 10:46:03       45 阅读
  4. Python语言-面向对象

    2024-07-22 10:46:03       55 阅读

热门阅读

  1. PyTorch实现标签到One-Hot编码的步骤解析

    2024-07-22 10:46:03       19 阅读
  2. DM数据库导出excel表结构

    2024-07-22 10:46:03       14 阅读
  3. 探索Python元类的奥秘:定义与实用应用

    2024-07-22 10:46:03       15 阅读
  4. 经常进行工作总结,有何重要作用呢?

    2024-07-22 10:46:03       14 阅读
  5. C++:istream、ostream和fstream类

    2024-07-22 10:46:03       18 阅读
  6. 4 DAY

    2024-07-22 10:46:03       14 阅读
  7. 数仓中主题域还是数据域?

    2024-07-22 10:46:03       15 阅读
  8. (day21)leecode hot100字母异位词分组

    2024-07-22 10:46:03       17 阅读
  9. WireGuard 编译安装

    2024-07-22 10:46:03       15 阅读