新闻详情

新闻详情

首页 / 资讯中心 / 详情

pytest tmpdir fixture介绍(tmpdir_factory)(自动在测试开始前创建一个临时目录,并在测试结束后删除该目录)

发布时间:2026/11/9 22:01:08来源:尧图网络
pytest tmpdir fixture介绍(tmpdir_factory)(自动在测试开始前创建一个临时目录,并在测试结束后删除该目录)
Fixture 的本质是把“测试环境的搭建和销毁”从测试逻辑中解耦出来。 没有它你的测试要么充满重复代码要么因为资源未清理/状态污染而变得不可靠。它是 pytest 最核心的设计哲学之一。示例代码importpytestpytest.fixturedeftmp_dir(tmpdir):# 使用内置的 tmpdir fixturereturntmpdir.mkdir(test_data)deftest_tmp_dir(tmp_dir):filetmp_dir.join(test.txt)file.write(Hello)assertfile.read()Hello参考文章pytest介绍python测试框架pytest.mark.parametrize、pytest.fixtures文章目录**代码解析**1. **导入 pytest 模块**2. **定义自定义 fixturetmp_dir**3. **测试函数test_tmp_dir****调用流程****如何运行代码****关键概念总结****扩展示例**这段代码使用了pytest的内置tmpdirfixture 来创建临时目录并验证其功能。下面是对代码的逐行解释和调用流程的说明代码解析1.导入 pytest 模块importpytest导入pytest模块这是使用pytest测试框架的基础。2.定义自定义 fixturetmp_dirpytest.fixturedeftmp_dir(tmpdir):# 使用内置的 tmpdir fixturereturntmpdir.mkdir(test_data)作用创建一个临时目录test_data并将其返回给测试函数使用。关键点tmpdir是pytest提供的内置 fixture它会自动在测试开始前创建一个临时目录并在测试结束后删除该目录。tmpdir.mkdir(test_data)在临时目录下创建一个名为test_data的子目录。返回值tmp_dir是一个py.path.local对象表示test_data目录。3.测试函数test_tmp_dirdeftest_tmp_dir(tmp_dir):filetmp_dir.join(test.txt)file.write(Hello)assertfile.read()Hello作用在临时目录test_data中创建一个文件test.txt写入内容并验证内容是否正确。关键点tmp_dir是上一步定义的 fixture它会自动传入当前测试函数。tmp_dir.join(test.txt)在test_data目录下创建一个文件test.txt。file.write(Hello)向文件写入字符串Hello。assert file.read() Hello验证文件内容是否匹配预期值。调用流程运行测试时pytest会自动发现以test_开头的测试函数如test_tmp_dir。执行test_tmp_dir时pytest会先调用tmp_dirfixture。tmp_dirfixture 的执行pytest自动调用内置的tmpdirfixture无需手动调用。tmpdir.mkdir(test_data)创建临时目录test_data。返回test_data目录对象给test_tmp_dir函数。测试函数的执行test_tmp_dir使用tmp_dir参数即test_data目录。创建文件test.txt并写入内容最后验证内容是否正确。测试结束后的清理测试完成后pytest会自动删除临时目录test_data及其所有子目录和文件包括test.txt。如何运行代码保存代码到文件将代码保存为test_tmp.py。运行测试在终端中执行以下命令pytest test_tmp.py-v-v表示输出详细的测试信息。如果测试通过你会看到类似test_tmp.py::test_tmp_dir PASSED的输出。验证临时目录的自动清理测试运行时pytest会生成一个临时目录路径类似/tmp/pytest-of-username/.../test_data。测试结束后该目录及其内容会被自动删除无需手动清理。关键概念总结tmpdirfixture自动创建临时目录测试结束后自动删除。可用于存放测试过程中需要的临时文件。Fixture 的作用将测试的准备工作如创建临时目录与测试逻辑分离提高代码的可读性和可维护性。断言验证使用assert验证文件内容是否符合预期确保测试的正确性。扩展示例如果你需要更复杂的临时文件管理可以结合tmpdir_factory会话级临时目录或tempfile模块。例如importpytestimporttempfilepytest.fixturedefsession_tmp_dir(tmpdir_factory):returntmpdir_factory.mktemp(session_data)deftest_session_tmp_dir(session_tmp_dir):filesession_tmp_dir.join(session_file.txt)file.write(Session Data)assertfile.read()Session Datatmpdir_factory的作用范围是整个测试会话session适合需要跨多个测试共享的临时目录。
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/10 4:49:37

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/9 8:37:19

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/9 8:37:19

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/10 1:10:29

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/9 8:37:18

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/9 8:37:18

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉