You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用pytest fixtures创建测试所需文件夹?

pytest fixture 重构方案

核心优化点

  • 用fixture的作用域控制文件夹创建时机,避免重复执行冗余检查
  • 替换原有的单层目录创建逻辑为递归创建,兼容上层目录不存在的场景
  • 支持自动执行或按需调用两种模式,适配不同测试场景

重构后代码

import os
import pytest

# scope可按需调整:session(全局测试会话仅执行1次)/ module(单测试文件执行1次)/ function(每个测试用例执行1次)
# autouse=True表示全局自动生效,无需手动在测试用例中引用
@pytest.fixture(scope="session", autouse=True)
def ensure_test_output_dir():
    output_path = "data/output"
    # exist_ok=True 自动跳过已存在目录,自动递归创建所有缺失的父目录
    os.makedirs(output_path, exist_ok=True)
    # 返回路径可供测试用例直接调用
    return output_path

用法说明

  • 如果设置了autouse=True,无需额外修改原有测试代码,运行测试时会自动完成目录创建检查,完全替代你原来的手动创建逻辑
  • 如果不需要全局生效,去掉autouse=True参数,仅在需要用到输出目录的测试用例中传入fixture即可:
def test_sample_case(ensure_test_output_dir):
    result_path = os.path.join(ensure_test_output_dir, "test_result.json")
    # 后续测试逻辑

内容的提问来源于stack exchange,提问作者viktor_dmitry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:27:02