【发布时间】:2014-09-13 14:52:27
【问题描述】:
我使用 Sublime Text 2 作为 Rails 应用程序的编辑器,并且有一个 rspec 测试套件,在我使用 Mandrill API 添加电子邮件功能之前没有问题通过。
现在无论我在哪里尝试发送电子邮件,都会收到以下错误:
Mandrill::Error:
You must provide a Mandrill API key
如果我在终端中运行这些测试,它们就会通过。
API 密钥在我的.bash_profile 中设置为环境变量。
有没有办法配置 Sublime Text 以使用这些变量?
【问题讨论】:
-
您使用的是什么操作系统,您是如何在 Sublime 中运行测试的?如果是插件,请提供网址。
-
@MattDMo 我使用的是 Mac OSX 10.9.4。使用 RubyTest:github.com/maltize/sublime-text-2-ruby-tests。也使用宙斯github.com/burke/zeus
-
听起来测试套件没有被
.bash_profile中定义的环境变量调用。这通常是由在非登录 shell 中启动的进程引起的。如果您在测试套件顶部添加puts ENV; exit,插件会打印什么?另外,尝试将插件运行的命令更改为source ~/.bash_profile && {original command}(不带花括号) -
谢谢@Matt。有趣的是,如果我将 puts ENV.inspect;exit 放在开头,则不会显示任何环境变量。如果我在 (binding.pry) 中放置一个断点并尝试,它们都会被列出。顺便说一句,我的 Facebook 密钥(在 .bash_profile 中设置)在 rubytest 中运行时可以正常工作。我不太确定在哪里包含
source ...,但尝试在 rubytest.sublime-settings 中更改为:"run_rspec_command": "source ~/.bash_profile && rspec {relative_path}",但这会在运行ruby: No such file or directory -- source (LoadError)时出现错误 -
有趣的是......刚刚在最后一条评论中发现缺少 zeus 命令,所以我毕竟没有使用 zeus。如果我将运行命令更改为
"run_rspec_command": "zeus rspec {relative_path}",则在 zeus 中设置环境(我假设)并且测试运行正确。我认为这回答了这个问题。 @Matt 如果您有任何有用的内容可以添加source ...,那么请这样做,但欢迎您提供并回答以收集赏金。
标签: ruby-on-rails rspec sublimetext2 mandrill