使用rspec

时间:2015-04-23 12:18:36

标签: ruby-on-rails rspec environment-variables

我使用gem 'dotenv-rails', '~> 0.9.0'将环境变量加载到Rails 4.0.5应用程序中。我有.env文件和.env.test。一切都在开发中运行良好,但是当涉及测试时,我使用rspec,它无法设置环境变量。

我在测试环境中进入了Rails控制台,我可以看到它们被设置为nil。

有关如何在测试中加载dotenv的任何提示?

4 个答案:

答案 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.rbrails_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的答案后,我发现每个环境都需要指定文件。