TL; DR:我运行zeus rspec spec/
时未设置我的Figaro变量。
标题几乎简要地解释了这个问题,但我会详细说明。
在Rails 4应用程序中,我使用Figaro来存储特定于环境的配置,例如: Rails秘密令牌(Rails.configuration.secret_key_base
)。这本身很好用。我也在使用Zeus来预加载我的Rails配置,它也像魅力一样。
但是,当组合并运行我的RSpec规范(通过zeus rspec spec/
)时,我的Rails秘密令牌将被删除。当然,这会输出弃用警告,然后输出错误:
DEPRECATION WARNING: You didn't set config.secret_key_base.
[...]
RuntimeError:
You must set config.secret_key_base in your app's config.
当规范正在运行时,我注意到Rails环境已经改变(Rails.env == "test"
),并且我认为这可能是由Zeus自动完成的,因为它发生了,即使我删除了我的<更改环境< em> spec_helper.rb 文件。
也许值得一提的是,没有宙斯,我的规格就完全没了。
我发现如果我明确地将秘密令牌设置为 spec_helper.rb 中的值,那么Zeus中的东西工作正常,但我的Figaro环境变量不存在。
基本上,当Zeus运行规范时,好像我的Figaro的环境变量没有被设置。如果有人知道我怎么能让Zeus在运行我的测试时设置这些,那就太棒了!
非常感谢,人们。 : - )
答案 0 :(得分:1)
我刚转到使用dotenv
gem:
https://github.com/bkeepers/dotenv
将以下行添加到您的Gemfile中:
gem 'dotenv', groups: [:development, :test]
bundle install
,然后重启宙斯 - 你应该好好去!