我正在使用VSCode devcontainers,我很难弄清楚如何为我的pytest设置运行不同的.env文件,而不是只想运行uvicon/debug。
我可以在settings.json中设置一个envfile,这是有效的,但我必须来回更改此路径,这取决于我是想测试还是只运行服务器。我读到过,您可以在launch.json中更改测试的envfile,但当在中发现/运行测试不再出现时,这些是launch.jsn的有效设置,必须烘焙到vscode python扩展中?
我真的很困惑,因为我觉得这是一个常见的用例,我真正想做的就是设置一个不同的DB连接器,这样测试就可以为测试删除/创建表,但dev将保留在一个单独的数据库中。
对于任何偶然发现这一点的人,我找到了一个解决方法,即指定一个特定的env文件用于运行和调试,然后在settings.json中使用一个单独的env,该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"
]
}
有点奇怪的是,这就是它的配置方式,但它现在似乎有效。