Pytest(七)-skip、skipif跳过用例 一.前言1.pytest.mark.skip可以标记无法在某些平台上运行的测试功能或者您希望失败的测试功能2.希望满足某些条件才执行某些测试用例否则pytest会跳过运行该测试用例3.实际常见场景跳过非Windows平台上的仅Windows测试或者跳过依赖于当前不可用的外部资源(例如数据库)的测试二.pytest.mark.skip1.跳过执行测试用例有可选参数reason跳过的原因会在执行结果中打印# -*- coding: utf-8 -*-importpytestpytest.fixture(autouseTrue)deflogin():print(登录)deftest_case01():print(我是测试用例11111)pytest.mark.skip(reason不执行该用例因为没写好)deftest_case02():print(我是测试用例22222)classTest1:deftest_1(self):print(%% 我是类测试用例1111 %%)pytest.mark.skip(reason不想执行)deftest_2(self):print(%% 我是类测试用例2222 %%)pytest.mark.skip(reason类也可以跳过不执行)classTestSkip:deftest_1(self):print(%% 不会执行 %%)1.1.执行结果2.知识点2.1.pytest.mark.skip可以加在函数上类上类方法上2.2.如果加在类上面类里面的所有测试用例都不会执行2.3.以上小案例都是针对整个测试用例方法跳过执行如果想在测试用例执行期间跳过不继续往下执行呢三.pytest.skip()函数基础使用1.作用在测试用例执行期间强制跳过不再执行剩余内容2.类似在Python的循环里面满足某些条件则break跳出循环deftest_function():n1whileTrue:print(f这是我第{n}条用例)n1ifn5:pytest.skip(我跑五次了不跑了)3.执行结果四.pytest.skip(msg“”,allow_module_levelFalse)1.当allow_module_levelTrue时可以设置在模块级别跳过整个模块# -*- coding: utf-8 -*-importsysimportpytestifsys.platform.startswith(win):pytest.skip(skipping windows-only tests,allow_module_levelTrue)pytest.fixture(autouseTrue)deflogin():print(登录)deftest_case01():print(我是测试用例11111)1.1.执行结果collecting...Skipped:skipping windows-only tests collected0items/1skipped1skippedin0.15s五.pytest.mark.skipif(condition, reason“”)1.作用希望有条件地跳过某些测试用例2.注意condition需要返回True才会跳过pytest.mark.skipif(sys.platformwin32,reasondoes not run on windows)classTestSkipIf(object):deftest_function(self):print(不能在window上运行)3.执行结果collecting...collected1item 07skip_sipif.py::TestSkipIf::test_function SKIPPED[100%]Skipped:doesnotrun on windows1skippedin0.04s六.跳过标记1.可以将pytest.mark.skip和pytest.mark.skipif赋值给一个标记变量2.在不同模块之间共享这个标记变量3.若有多个模块的测试用例需要用到相同的skip或skipif 可以用一个单独的文件去管理这些通用标记然后适用于整个测试用例集# 标记skipmarkpytest.mark.skip(reason不能在window上运行)skipifmarkpytest.mark.skipif(sys.platformwin32,reason不能在window上运行啦啦啦)skipmarkclassTestSkip_Mark(object):skipifmarkdeftest_function(self):print(测试标记)deftest_def(self):print(测试标记)skipmarkdeftest_skip():print(测试标记)4.执行结果collecting...collected3items 07skip_sipif.py::TestSkip_Mark::test_function SKIPPED[33%]Skipped:不能在window上运行啦啦啦07skip_sipif.py::TestSkip_Mark::test_def SKIPPED[66%]Skipped:不能在window上运行07skip_sipif.py::test_skip SKIPPED[100%]Skipped:不能在window上运行3skippedin0.04s七.pytest.importorskip( modname: str, minversion: Optional[str] None, reason: Optional[str] None )1.作用如果缺少某些导入则跳过模块中的所有测试2.参数列表2.1.modname模块名2.2.minversion版本号2.3.reason跳过原因默认不给也行pexpectpytest.importorskip(pexpect,minversion0.3)pexpectdeftest_import():print(test)3.执行结果一如果找不到moduleSkipped:couldnotimportpexpect:No module namedpexpectcollected0items/1skipped4.执行结果一如果版本对应不上Skipped:modulesyshas __version__None,requiredis:0.3collected0items/1skipped

相关新闻

最新新闻

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现

SerenityOS 命令行选项解析指南:getopt 与 getopt_long 用法、返回值与底层实现 【免费下载链接】serenity The Serenity Operating System 🐞 项目地址: https://gitcode.com/GitHub_Trending/se/serenity 导读 本文以 getopt(3) 手册 为核心&a…

2026/9/26 23:24:47
轻量服务器还是ECS?大促云服务器选购与避坑实战指南

轻量服务器还是ECS?大促云服务器选购与避坑实战指南

每年大促节点,群里永远有人在问同一个问题:“38元的轻量服务器到底怎么抢?为什么我每次点进去都是已售罄?68元直购和99元的ECS我到底选哪个?”作为一个常年帮团队和自己采购云服务器的老用户,我太清楚这种纠…

2026/9/26 18:48:15
为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南

为 AI 代理的 Review 动作编写 Cedar 审批门控策略:review-agent-governance 策略编写实战指南 【免费下载链接】agents Multi-harness agentic plugin marketplace for Claude Code, Codex, Cursor, OpenCode, GitHub Copilot, and Google Antigravity 项目地址:…

2026/9/26 3:42:08
PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署

PaddleOCR 手写数学公式识别算法 CAN 实战指南:Counting-Aware Network 训练、评估与推理部署 【免费下载链接】PaddleOCR Turn any PDF or image document into structured data for your AI. A powerful, lightweight OCR toolkit that bridges the gap between i…

2026/9/26 11:37:29
Spring源码解析:构造器注入的类型转换与候选匹配机制

Spring源码解析:构造器注入的类型转换与候选匹配机制

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/26 4:08:27
openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由

openai-agents-python 多模型接入指南:深入解析 AnyLLMModel 适配层与 any-llm 路由 【免费下载链接】openai-agents-python A lightweight, powerful framework for multi-agent workflows 项目地址: https://gitcode.com/GitHub_Trending/op/openai-agents-pyth…

2026/9/26 21:11:24

日新闻

周新闻