python - 单独的 .env 用于测试和调试
问题描述
我正在使用 VSCode 开发容器,我很难弄清楚如何为我的 pytest 设置运行不同的 .env 文件,而我只想运行 uvicorn/debug。
我可以在 settings.json 中设置一个 envfile,它可以工作,但是我必须根据我是要测试还是只运行服务器来来回更改此路径。我读过你可以在launch.json中更改测试的envfile,但是当发现/运行测试不再出现时,这些是launch.json的有效设置,并且必须烘焙到vscode-python扩展中?
我真的很困惑,因为我觉得这是一个常见的用例,我真正想要完成的只是设置一个不同的数据库连接器,以便测试可以删除/创建测试表,但开发人员会保留在一个单独的数据库中。
解决方案
对于任何偶然发现这一点的人,我找到了一种解决方法,即指定一个特定的 envfile 用于运行和调试,然后在 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"
]
}
这有点奇怪,这是它的配置方式,但它现在似乎可以工作。
推荐阅读
- r - 如何减少 stackexchange api 的查询时间?
- javascript - 如何在 Vue.js 应用程序中共享“计算”方法
- windows - Selenium 在谷歌搜索,如果关键字存在则扫描页面
- ruby-on-rails - Ruby / Rails - 根据参数将数组分成两组并显示两者的最有效方法
- javascript - React/Redux 项目给我错误“编译失败。模块构建失败:错误:ENOENT:没有这样的文件或目录''
- python - 在 Pyspark 中,如何通过字典将列映射到其他值(字典的键是元组)
- ios - iOS 上的 WebRTC/Janus
- vba - 无法使用 Excel VBA 将文本分配给单元格
- php - 使用复选框创建 SQL 查询
- excel - 具有数据透视表数据的动态名称范围