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)
有没有办法在不通过调试器运行时实现类似的效果?
尝试使用.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)