如何在PyCharm中全局设置工作目录,统一pytest运行路径?
全局设置pytest默认工作目录为项目根目录的方法
以下几种方法可实现全局配置,无需逐个修改运行配置:
方法1:使用pytest配置文件
在项目根目录创建pytest.ini(兼容tox.ini或setup.cfg),写入以下配置:
[pytest] pythonpath = .
pythonpath = .会将项目根目录加入Python路径,同时pytest会默认以该配置文件所在目录作为工作目录执行测试。如果你的测试文件集中在某个文件夹(比如tests),可额外添加testpaths = tests指定测试查找路径。
方法2:通过环境变量全局指定
设置PYTEST_ADDOPTS环境变量,让所有pytest实例自动使用指定根目录:
- Linux/macOS:在终端配置文件(如
~/.bashrc、~/.zshrc)中添加:
执行export PYTEST_ADDOPTS="--rootdir=/你的项目根目录绝对路径"source ~/.bashrc(对应你的配置文件)生效后,每次运行pytest都会自动切换到指定根目录。 - Windows:打开系统环境变量设置,新增变量
PYTEST_ADDOPTS,值设为--rootdir=C:\你的项目根目录绝对路径,重启终端或IDE后生效。
方法3:IDE全局模板配置(以PyCharm为例)
如果使用PyCharm,可以统一设置所有pytest运行配置的默认工作目录:
- 打开
File > Settings > Build, Execution, Deployment > Python Debugger > Templates - 找到
pytest模板并点击编辑 - 在
Working directory选项中选择项目根目录 - 保存设置后,新建的pytest运行配置都会自动继承这个工作目录设置
方法4:通过conftest.py钩子强制切换
在项目根目录创建conftest.py文件,添加以下代码:
import os import pytest @pytest.hookimpl(tryfirst=True) def pytest_configure(config): # 获取conftest.py所在的项目根目录路径 project_root = os.path.abspath(os.path.dirname(__file__)) # 切换工作目录到项目根目录 os.chdir(project_root)
pytest启动时会自动执行这个钩子函数,强制将工作目录切换到项目根目录,无论你从哪个子目录启动测试。
内容的提问来源于stack exchange,提问作者zjffdu
相关产品推荐
相关产品推荐

