TL;DR:我的 Figaro 变量在我运行时未设置zeus rspec spec/
。
标题几乎简单地解释了这个问题,但我会详细说明。
在 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.env == "test"
当规范运行时,我注意到 Rails 环境发生了变化(
值得一提的是,没有 Zeus,我的规格运行完全正常。
我发现如果我明确地将秘密令牌设置为spec_helper.rb中的一个值,那么 Zeus 中的东西可以正常工作,但我的 Figaro 环境变量不存在。
基本上,当 Zeus 运行规范时,似乎我的 Figaro 环境变量没有被设置。如果有人知道我如何让 Zeus 在运行我的测试时设置这些,那就太棒了!
非常感谢,人们。:-)