VSCode Test Explorer运行Pytest注入AWS Parameter Store环境变量问题
VSCode Pytest Test Explorer 动态环境变量加载问题
问题背景
当前通过VSCode Python Test Explorer使用Pytest框架,测试运行时需要传入环境变量:
- 手动执行可正常运行的流程:
- 运行测试前先从AWS Parameter Store拉取配置
- 在BASH中执行命令将环境变量加载到当前终端会话
- 终端内执行
pytest exampletest.py时,测试可正常读取环境变量
- Test Explorer运行异常:点击VSCode内置Test Explorer的运行按钮执行
exampletest.py时,会抛出找不到环境变量的错误,可确认Test Explorer的运行环境与手动设置环境变量的终端会话不互通。 - 现有方案局限:目前已知VSCode Test Explorer配置环境变量的常规方案是使用
ini文件或.env文件,但这类方案需要硬编码键值对,不满足动态配置需求:目标是运行时从AWS Parameter Store动态注入环境变量,不做硬编码。如果找不到无需ini/.env文件即可加载自定义环境变量的方案,将放弃使用Test Explorer工具。
待解答疑问
- 点击Test Explorer运行按钮执行单个测试/测试套件的实际运行逻辑是什么?是否会打开新的Terminal会话?是否支持在测试运行前访问该运行终端会话?
- Test Explorer的环境变量加载逻辑是什么?通过
raise Exception(os.environ)输出的Test Explorer运行时环境变量,和本地命令行运行时的环境变量存在明显差异。 - 是否支持配置Test Explorer,让测试命令在指定的已运行终端窗口中执行?
- 已初步调研虚拟环境方案,判断该方案会引入更多额外问题,暂不考虑该方向。
- 是否有官方文档未覆盖的VSCode Test Explorer相关参考资料?目前考虑过修改工具源码,但相关公开参考资料较为匮乏。
相关参考材料
- 附2张界面截图,分别展示Test Explorer配置界面、测试运行报错状态
内容的提问来源于stack exchange,提问作者Kevin
相关产品推荐
相关产品推荐

