【发布时间】:2020-11-03 03:16:22
【问题描述】:
我正在使用 VSCode 开发容器,我很难弄清楚如何为我的 pytest 设置运行不同的 .env 文件,而我只想运行 uvicorn/debug。
我可以在 settings.json 中设置一个 envfile,它可以工作,但我必须根据我是想测试还是只运行服务器来来回更改此路径。我已经读到您可以在 launch.json 中更改测试的 envfile,但是当发现/运行测试不再出现时,这些是 launch.json 的有效设置,并且必须烘焙到 vscode-python 扩展中?
我真的很困惑,因为我觉得这是一个常见的用例,我真正想要完成的只是设置一个不同的数据库连接器,以便测试可以删除/创建测试表,但开发人员会在一个单独的数据库。
【问题讨论】:
-
不确定这是否有帮助,但我创建了一个脚本,该脚本将环境名称作为参数,例如
test、dev、prod,然后使用模式。基于此,我通过pydantic加载配置正确的文件。有关配置文件的更多详细信息,请参阅fastapi.tiangolo.com/advanced/settings/#the-config-file -
感谢您的评论,类似的事情将成为我的其他解决方法!这有点奇怪,但我通过让我的 test.env 文件成为 settings.json 的默认文件,然后为我的 launch.json 指定一个不同的文件,在某种程度上解决了这个问题。
-
没有灵丹妙药。此外,这取决于您是在裸机还是在容器中运行它。这可能会产生很大影响,因此作者很难创建一个独特的解决方案,尽管方向是容器化、git 和 CI/CD 系统,它们可以利用不同的
.env文件,这些文件在prod之间不共享,dev或test -
绝对没有银弹哈哈!是的,我只是感到惊讶,因为当 vscode python 插件将“发现测试”类型的东西放在 launch.json 中时,这实际上是以前可配置的。该选项似乎不再可用,并且以某种方式刚刚加入。
-
可能插件还没有更新。您可以在项目的回购(或他们拥有的任何东西)上打开一个问题/错误。也许维护者会修复它
标签: python visual-studio-code fastapi vscode-python