4

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 在运行我的测试时设置这些,那就太棒了!

非常感谢,人们。:-)

4

1 回答 1

1

我刚刚切换到使用dotenvgem:

https://github.com/bkeepers/dotenv

将以下行添加到您的 Gemfile:

gem 'dotenv', groups: [:development, :test]

bundle install,然后重新启动宙斯 - 你应该很高兴!

于 2014-03-03T19:18:38.480 回答