首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
pytest 有哪些核心特性?在大规模用例集里你如何用 fi
[问答题]
pytest 有哪些核心特性?在大规模用例集里你如何用 fixture 作用域、参数化、标记分层、并行与隔离。
添加笔记
求解答(0)
邀请回答
收藏(5)
分享
纠错
1个回答
添加回答
0
徐跃文
一、pytest 核心特性
简洁的测试用例编写
支持函数式测试(无需继承类)和类测试,用例命名以 test_ 开头即可被自动识别,语法简洁灵活。
强大的断言机制
直接使用 Python 原生断言(如 assert a == b),失败时会自动展示详细上下文(如变量值、差异对比),无需额外封装。
丰富的插件生态
支持超过 800 个第三方插件(如 pytest-xdist 并行执行、pytest-html 生成报告、pytest-mock 集成 mocking 等)。
Fixture 依赖注入
替代传统的 setup/teardown,通过 @pytest.fixture 定义可复用的测试资源(如数据库连接、配置加载),支持灵活的依赖管理和作用域控制。
参数化测试
用 @pytest.mark.parametrize 轻松实现多组输入的测试,避免重复代码。
测试选择与过滤
支持按文件名、函数名、标记(@pytest.mark)、关键字等筛选用例,方便局部执行。
跳过与预期失败
用 @pytest.mark.skip(跳过用例)和 @pytest.mark.xfail(预期失败)处理特殊场景(如兼容性测试)。
集成性
可兼容 unittest 用例,支持与 CI/CD 工具(Jenkins、GitHub Actions 等)无缝集成。
二、大规模用例集的实践策略
1.
Fixture 作用域:控制资源生命周期
Fixture 通过 scope 参数定义作用域,减少重复初始化 / 销毁资源的开销,适合大规模用例:
function(默认):每个测试函数执行一次(如临时变量)。
class:每个测试类执行一次(如类内共享的配置)。
module:每个模块(文件)执行一次(如模块级的数据库连接)。
package:每个包执行一次(如跨模块共享的资源)。
session:整个测试会话执行一次(如全局配置、数据库初始化)。
发表于 2025-10-28 10:01:59
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
来自:
测试开发-牛客面经八股
难度:
1条回答
5收藏
133浏览
热门推荐
相关试题
拿“反转字符串”和“身份证号输入框...
评论
(2)
来自
测试开发-牛客面经八股
UI 自动化你实际怎么落地?定位、...
评论
(0)
来自
测试开发-牛客面经八股
给你一个“人脸识别登录 + 贷款”...
评论
(0)
来自
测试开发-牛客面经八股
你把端到端测试从头到尾说一遍:流程...
评论
(3)
来自
测试开发-牛客面经八股
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题