簡體   English   中英

.env 沒有被加載到 Rails 的測試環境中,使用 rspec

[英].env not being loaded in test environment in Rails with rspec

我正在使用gem 'dotenv-rails', '~> 0.9.0'將環境變量加載到 Rails 4.0.5 應用程序中。 我有一個 .env 文件和一個 .env.test。 一切都在開發中運行良好,但是在我使用 rspec 進行的測試方面,它無法設置環境變量。

我已經在測試環境中進入 Rails 控制台,我可以看到它們被設置為 nil。

關於如何讓 dotenv 在測試中加載的任何提示?

這是一個遲到的答案,但對於任何可能會發現它有幫助的人,請將其添加到spec_helper.rb

require 'dotenv'
Dotenv.load('.env')

此外,Dotenv.load 可以接受一個列表,例如:

Dotenv.load(
  '.env.local',
  '.env.test',
  '.env'
)

將此行放在 rspec 設置中的Dotenv::Railtie.load或要加載 dot env 文件的任何頁面中。

Dotenv.load(File.expand_path("../../.env.#{Rails.env}", __FILE__))

在研究 Paritosh 的回答后,我發現需要為每個環境指定文件。

如果您有測試特定的環境配置,您可以使用Dotenv.overload覆蓋其他環境配置。 只需將以下內容添加到您的spec_helper.rbrails_helper.rb

require "dotenv"
Dotenv.overload ".env.test" 
Dotenv.overload ".env.test.local"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM