我使用gem 'dotenv-rails', '~> 0.9.0'
将环境变量加载到Rails 4.0.5应用程序中。我有.env文件和.env.test。一切都在开发中运行良好,但是当涉及测试时,我使用rspec,它无法设置环境变量。
我在测试环境中进入了Rails控制台,我可以看到它们被设置为nil。
有关如何在测试中加载dotenv的任何提示?
答案 0 :(得分:13)
这是一个迟到的答案,但对于可能觉得有帮助的人,请将其添加到spec_helper.rb
require 'dotenv'
Dotenv.load('.env')
此外,Dotenv.load可以接受列表,例如:
Dotenv.load(
'.env.local',
'.env.test',
'.env'
)
答案 1 :(得分:0)
如果您具有测试特定的环境配置,则可以使用Dotenv.overload
覆盖其他环境配置。只需将以下内容添加到您的spec_helper.rb
或rails_helper.rb
中即可。
require "dotenv"
Dotenv.overload ".env.test"
Dotenv.overload ".env.test.local"
答案 2 :(得分:-1)
将此行放在Dotenv::Railtie.load
的rspec设置或任何要加载dot env文件的页面中。
答案 3 :(得分:-1)
Dotenv.load(File.expand_path("../../.env.#{Rails.env}", __FILE__))
在研究Paritosh的答案后,我发现每个环境都需要指定文件。