问题描述
我正在使用VSCode devcontainer,与试图只运行uvicorn / debug相比,我很难找出如何为我的pytest设置运行不同的.env文件。
我可以在settings.json中设置一个envfile,它可以工作,但是我必须来回更改此路径,具体取决于我是要测试还是运行服务器。我已经读过您可以在launch.json中更改测试的env文件,但是当发现/运行测试不再出现时,这些是launch.json的有效设置,必须放入vscode-python扩展中?
我真的很困惑,因为我觉得这是一个普通的用例,我真正想完成的就是设置一个不同的数据库连接器,以便测试可以删除/创建测试表,但是开发人员将坚持使用一个单独的表数据库。
解决方法
对于任何偶然发现此问题的人,我发现了一种解决方法,该方法是指定一个特定的env文件来运行和调试,然后在settings.json中使用单独的env来进行测试。
所以想象你有
dev.env其中包含
environment=dev
...
和包含以下内容的test.env
environment=test
...
然后您将在您的.vscode/settings.json
"python.envFile": "${workspaceFolder}/test.env"
这是我的启动配置与uvicorn一起启动fastapi的样子:
{
"name": "Python: FastAPI","type": "python","request": "launch","module": "uvicorn","envFile": "${workspaceFolder}/dev.env","args": [
"app.main:app","--reload"
]
}
这是必须配置的方式,这有点奇怪,但它似乎目前可以使用。