如何为rspec获取环境变量集?

我正在使用foreman启动rails开发服务器。我可以将所有环境变量都放在.env文件中,这很好。有没有一种方法可以为我的测试环境做类似的事情

我想设置一个API密钥,用于vcrgem,但我不想将API添加到版本控制中。除了在启动测试脚本时手动设置环境变量之外,还有什么建议吗

如果您只需要设置环境变量,则可以从命令行进行设置:

SOMETHING=123 SOMETHING\u ELSE=“这是一个测试”rake规范

或者,您可以在Rakefile或spec_helper.rb的顶部定义以下内容:

ENV['SOMETHING']=123
ENV['SOMETHING_other']=“这是一个测试”

如果它们并不总是适用,您可以使用条件:

如果有什么事情需要发生?
环境[‘SOMETHING’]=123
ENV[‘SOMETHING_other’]=“这是一个测试”
终止

如果要使用Foreman.env文件,该文件如下所示:

SOMETHING=123
“这是一个测试”

并将其转换为以下内容并进行评估:

ENV['SOMETHING']='123'
ENV['SOMETHING_other']='this is a test'

你可以这样做:

文件。打开(“/path/to/.env”,“r”)。每行|
a=line.chomp(“\n”).split(“=”,2)
a[1].gsub!(/^“|”$/,'')如果['\'''''''''''],包括?(a[1][0])
eval“ENV['.{a[0]}']='.{a[1].'.'''''
终止

虽然我认为这对多行值不起作用

正如@jessewlgamott所指出的,看起来您可以使用gem'dotenv-rails'

发表评论