gpt4 book ai didi

jestjs - 如何在 Jest 测试中为无服务器框架设置环境变量

转载 作者:行者123 更新时间:2023-12-05 06:57:47 25 4
gpt4 key购买 nike

我正在使用 Jest 为我的无服务器框架服务进行集成测试。目前我有指定环境变量的 .env 文件,这就是我遇到的问题。

在我的 package.json 中我有:

...
"scripts": {
...
"start": "npx sls offline start --env local --httpPort xxxx --port xxxx --lambdaPort xxxx"
}
...

当我调用 yarn start该服务从 .env.local 文件开始正确读取。但是当我调用 exec('yarn start')在 beforeAll 函数中(因为我需要运行服务来测试端点)服务从 .env 文件而不是 .env.local 中的配置开始。

我想不出如何设置正确的变量,我使用了 jest setupFiles 并尝试手动设置变量,如 process.env.ENV1='XX'但它没有用。到目前为止,唯一可行的方法是将我的测试脚本从 jest 更改为至 ENV1=X ENV2=Y ENV3=Z jest但感觉不对。

最佳答案

有一个很好的无服务器插件,叫做 "serverless-export-env" ,它会导出您在 serverless.yml 中设置的所有环境变量,以便您可对于Jest地使用它们,或者在本地调用它们。

安装插件后,需要将其放在plugins键的第一项,如:

plugins:
- serverless-export-env
- serverless-plugin-log-retention
- serverless-offline

同时指定导出设置,在custom

custom:
export-env:
filename: .env
overwrite: false
enableOffline: true

在此示例中,环境变量被导出到项目根目录中的 .env 文件。

然后,您可以运行serverless export-env将环境变量导出到.env

此外,您可以通过将此命令添加到 package.json 中的 script 来自动执行此过程,这样当您运行 npm test,它还为您运行 serverless export-env,更多信息,see this doc .

希望对您有所帮助。

关于jestjs - 如何在 Jest 测试中为无服务器框架设置环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64819729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com