一、用例编写规则

1,Unittest提供了test cases、test suites、test fixtures、test runner相关的类,让测试更加明确、方便、可控。使用unittest编写用例,必须遵守以下规则:

  (1)测试文件必须先import unittest

  (2)测试类必须继承unittest.TestCase

  (3)测试方法必须以“test_”开头

  (4)测试类必须要有unittest.main()方法

2,Pytest是python的第三方测试框架,是基于unittest的扩展框架,比unittest更简洁,更高效。使用pytest编写用例,必须遵守以下规则:

  (1)测试文件名必须以“test_”开头或者"_test"结尾(如:test_ab.py)

  (2)测试方法必须以“test_”开头。

  (3)测试类命名以"Test"开头。

总结:

Unittest:用例格式--复杂,不能兼容Pytest用例;

Pytest:用例格式--简单,可以兼容Unittest用例;

二、用例前置和后置

1,Unittest提供了setUp/tearDown,只能针对所有用例。

2,Pytest提供了模块级、函数级、类级、方法级的setup/teardown,比Unittest的setUp/tearDown更灵活。

  • 模块级(setup_module/teardown_module)开始于模块始末,全局的

  • 函数级(setup_function/teardown_function)只对函数用例生效(不在类中)

  • 类级(setup_class/teardown_class)只在类中前后运行一次(在类中)

  • 方法级(setup_method/teardown_method)开始于方法始末(在类中)

  • 类里面的(setup/teardown)运行在调用方法的前后

Pytest还可以在函数前加@pytest.fixture()装饰器,在测试用例中使用fixture函数。fixture的使用范围可以是function、module、class、session。

firture相对于setup和teardown来说有以下几点优势:

  (1)命名方式灵活,不局限于setup和teardown这几个命名

  (2)conftest.py 配置里可以实现数据共享,不需要import就能自动找到一些配置,可供多个py文件调用。

  (3)scope="module" 可以实现多个.py跨文件共享前置

  (4)scope="session" 以实现多个.py跨文件使用一个session来完成多个用例

  (5)用yield来唤醒teardown的执行

三、断言

1,Unittest提供了assertEqual、assertIn、assertTrue、assertFalse。

2,Pytest直接使用assert 表达式。

四、报告

1,Unittest使用HTMLTestRunnerNew库。

2,Pytest有pytest-HTML、allure插件。

五、失败重跑

1,Unittest无此功能。

2,Pytest支持用例执行失败重跑,pytest-rerunfailures插件。

六、参数化

1,Unittest需依赖ddt库,

2,Pytest直接使用 @pytest.mark.parametrize 装饰器。

七、用例分类执行

1,Unittest默认执行全部的用例,可以通过加载testsuite执行部门模块用例;

2,Pytest可以通过 @pytest.mark 来标记测试用例,执行命令加上参数“-m”即可运行标记的用例。

对比 Unittest 和 Pytest的更多相关文章

  1. [转]Python测试框架对比----unittest, pytest, nose, robot framework对比

      测试框架 什么是框架? 框架(Framework)是整个或部分系统的可重用设计,框架是用来解决代码的组织及运行控制问题的. 在我们编写自动化脚本的时候,经常需要读取配置文件,读取数据文件,发送请求 ...

  2. 广深小龙-基于unittest、pytest自动化测试框架之demo来学习啦!!!

    基于unittest.pytest自动化测试框架之demo,赶紧用起来,一起学习吧! demo分为两个框架:①pytest    ②unittest demo 中 包含 web.api 自动化测试框架 ...

  3. python 自动化测试框架unittest与pytest的区别

    前言: 有使用过unittest单元测试框架,再使用pytest单元测试框架,就可以明显感觉到pytest比unittest真的简洁.方便很多. unittest与pytest的区别: 主要从用例编写 ...

  4. Python测试框架对比----unittest, pytest, nose, robot framework对比

    什么是框架? 框架(Framework)是整个或部分系统的可重用设计, 框架是用来解决代码的组织及运行控制问题的. 在我们编写自动化脚本的时候,经常需要读取配置文件,读取数据文件,发送请求,记录日志, ...

  5. Python 自动化测试框架 unittest 和 pytest 对比

    一.用例编写规则 1.unittest提供了test cases.test suites.test fixtures.test runner相关的类,让测试更加明确.方便.可控.使用unittest编 ...

  6. unittest和pytest对比

    一.用例编写规则 1.unittest提供了test cases.test suites.test fixtures.test runner相关的类,让测试更加明确.方便.可控.使用unittest编 ...

  7. unittest 和 pytest 对比

    一.用例编写规则 1.unittest提供了test cases.test suites.test fixtures.test runner相关的类,让测试更加明确.方便.可控.使用unittest编 ...

  8. unittest和pytest的区别

    一.用例编写规则 1.unittest提供了test cases.test suites.test fixtures.test runner相关的类,让测试更加明确.方便.可控.使用unittest编 ...

  9. pycharm右键运行unittest、pytest文件

    在实际学习过程中,有时候会出现右键运行文件,但没有任何结果的情况.这就是没有使用unittest/pytest 的方式运行. 解决方法: 添加好

  10. python自动化测试框架的unittest与pytest前后置条件的区别

    前言: 笔者先试有用过unittest的前后置条件和pytest的前后置条件,觉得pytest的前后置条件比unittest的要简洁.方便很多.不过在使用unittest的前后置条件时,已经觉得在和每 ...

随机推荐

  1. React 18 自定义 Hook 获取 useState 最新值

    原理:通过同步更新 useRef  来获取最新值 // util.ts export const useRefState = (init: any = null) => { const [sta ...

  2. wiz 为知笔记服务器 docker 跨服务器迁移爬坑指北

    本文主要是介绍 wiz 为知笔记服务器 docker 从旧服务器迁移到新服务器的步骤以及问题排查. 旧服务器升级 wiz docker 目的:保持和新服务器拉取的镜像版本一致. 官方只留了 wiz d ...

  3. Typora 上传到 Github 实现笔记同步管理

    首先在 Github 上 new 一个 repository ,我建的名称是 md_notes 然后在本地 terminal 中启动以下命令新建一个 ssh key  ssh-keygen -o 生成 ...

  4. .net core mvc 跳转LoginPath时端口缺失

    在使用nginx部署.net core mvc的程序时,假如我使用的是5002端口,并且当访问站点时如果未登录,则跳转到登录页面.可是最后却发现跳转的时候端口丢失了,那是因为我配置的是       p ...

  5. KNN算法 0基础小白也能懂(附代码)

    KNN算法 0基础小白也能懂(附代码) 原文链接 1.K近邻是啥 1968年,Cover 和 Hart 提出了最初的近邻法,思路是--未知的豆离哪种豆最近,就认为未知豆和该豆是同一种类. 近邻算法的定 ...

  6. docker context 介绍

    $ docker context ls NAME DESCRIPTION DOCKER ENDPOINT ERROR default Current DOCKER_HOST based configu ...

  7. YuebonCore:基于.NET8开源、免费的权限管理及快速开发框架

    前言 今天大姚给大家分享一款基于.NET8开源.免费(MIT License)功能强大的权限管理及快速开发框架,支持前后端分离,项目架构易于扩展,是中小企业的首选:YuebonNetCore. 核心设 ...

  8. C# 调用WebService 笔记

    最近开发工作涉及到一些关于webService调用的问题,因为太久没有做过这部分,踩了一点坑,做个笔记记录一下,避免下次踩坑. 说明 C#调用webService基本有两种方法,一种是静态调用,也就是 ...

  9. SQL Server – 执行计划和各种 join 方式 (Execution plan & Join Pattern)

    前言 我几乎从来没有遇到过性能问题, 毕竟项目真的太小了. 一般上只要用常识去建 index 就可以了. 但是这并不阻碍我对知识的追求. 这篇是关于一些性能优化和原理的内容. 纯属学习, 希望未来有机 ...

  10. Figma 学习笔记 – Image

    参考: Figma Tutorial: Images 3 Ways to Insert Image 1. rectangle / frame + fill 画一个 rectangle / frame ...