我有一个Rails 6应用程序部署到Heroku,运行良好。我刚刚开始在应用程序中添加一个API,这在本地也很好,所有的测试都在本地通过。
当我部署到Heroku时,应用程序对curl的响应是正确的。
然而,我的测试(通过Heroku运行)在TypeError: no implicit conversion of nil into String授权期间失败了。我已经确定了根本原因,这就是DEVISE_JWT_SECRET_KEY环境变量没有加载到我的测试中。
这个变量被定义为Heroku环境变量,当我使用curl测试实际的应用程序时,效果很好,就像我前面提到的。正在运行
heroku config:get DEVISE_JWT_SECRET_KEY -a [APP_NAME]返回正确的键。
当我向测试中添加一行以检查变量时,当测试运行时将执行raise,显示变量丢失。
raise if ENV['DEVISE_JWT_SECRET_KEY'].nil?当我在Heroku上运行测试时,有人能提出为什么环境变量没有加载吗?
发布于 2020-08-17 12:14:36
注意到,与评论应用不同,Heroku不会从父应用程序继承任何配置vars。
要设置不应该包含在app.json中的机密或易失性环境变量(例如访问令牌),可以将它们添加到Heroku中管道的Heroku设置中。
https://devcenter.heroku.com/articles/heroku-ci
因此,期望您的CI使用您通过CLI设置的配置vars是错误的,如果您的CI错误地使用了真实的第三方凭据,这可能会导致一些非常严重的问题。
https://stackoverflow.com/questions/63449422
复制相似问题