在 VSCode 中运行 Python 单元测试时设置环境变量

Sha*_*har 1 python environment-variables python-unittest visual-studio-code

我想在单元测试中执行代码,条件是它们是从 VSCode 还是命令行中运行。有办法这样做吗?

原因是通过cv2.imwrite语句添加额外的视觉反馈,但在从命令行运行完整回归或运行 CI 时忽略这些反馈。

我知道我可以在内部设置调试配置文件launch.json并在那里定义环境变量,但这仅适用于调试单元测试时:

       {
            "name": "Debug Tests",
            "type": "python",
            "request": "test",
            "console": "integratedTerminal",
            "python": "${command:python.interpreterPath}",
            "justMyCode": false,
            "env": {
                "MY_ENVIRONMENT_SWITCH_FOR_WRITING_JPEGS": "1"
            }
        },
Run Code Online (Sandbox Code Playgroud)

有没有办法在不通过调试器运行时实现类似的效果?

Min*_*SFT 5

尝试使用.env文件定义环境变量

在此输入图像描述

.env

MY_ENVIRONMENT_SWITCH_FOR_WRITING_JPEGS = 1
Run Code Online (Sandbox Code Playgroud)

测试1.py

import os
from pathlib import Path
from dotenv import find_dotenv, load_dotenv

env_path = Path(".") / ".env"
load_dotenv(dotenv_path=env_path, verbose=True)
print(os.getenv("MY_ENVIRONMENT_SWITCH_FOR_WRITING_JPEGS"))
Run Code Online (Sandbox Code Playgroud)