我想对一些使用Google Cloud Platfrom的FastAPI API端点进行单元测试,我想在不使用文件中的os.environ["GOOGLE_APPLICATION_CREDENTIALS"]='path_to_json_file.json'
进行身份验证的情况下编写测试(因为该服务很快就会在云中(。有没有办法嘲笑这件事?
您的问题有点不清楚,但您不太可能想要在代码中设置GOOGLE_APPLICATION_CREDENTIALS
,部分原因是这个。
您应该从环境中设置变量:
GOOGLE_APPLICATION_CREDENTIALS=/path/to/your/key.json
python3 your_code.py
应用程序默认凭据(ADC(在3个位置查找凭据:
GOOGLE_APPLICATION_DEFAULT
环境变量gcloud application-default login
- 计算服务的标识
因此,在代码中显式设置变量会覆盖#2(不太重要(和#3(更重要(的可能性。
如果在运行代码进行测试等时将变量设置在代码之外,则会自动找到凭据,并对代码进行身份验证。
如果您不设置变量,因为代码正在计算服务上运行(例如,云运行、计算引擎…(,ADC将自动使用服务的凭据,并且代码将被验证。