通过“rake spec”调用时RSpec规范失败,通过“spec spec”调用时传递

时间:2010-03-02 16:09:21

标签: ruby-on-rails rspec rake

当我通过“rake spec”运行它时,我的一个规范失败了,但是当我使用RSpec可执行文件“spec”时通过了。 当我在ActionMailer视图中使用url帮助程序时,规范失败。错误消息是:

auction_url failed to generate from {:action=>"show", :state=>"asd", :slug=>"asd", :controller=>"auctions"}, expected: {:action=>"show", :controller=>"auctions"}, diff: {:state=>"asd", :slug=>"asd"}

:state和:slug是url的必需属性。 路线看起来像这样:

map.auction ':state/:slug', :controller => 'auctions', :action => 'show'

我在环境文件中设置了在ActionMailer视图中使用url帮助程序所需的主机:

ActionMailer::Base.default_url_options[:host] = 'myhost.com'

可能是什么问题? 为什么“rake spec”与“spec spec”的行为有所不同? 使用其中一个时加载/未加载的任何东西?

1 个答案:

答案 0 :(得分:1)

我意识到这有点老了,但无论如何 - 我只是碰到了同样的问题,而不是第一次。然后,当我开始将调试语句插入到失败的规范中以弄清楚发生了什么时 - rake spec再次工作。所以我怀疑当规范与rake有关时会发生某种缓存。如果再次发生这种情况,可以尝试运行

rake tmp:cache:clear

甚至

rake tmp:clear