当我通过"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”的行为不同?使用一个或另一个时加载/未加载的任何内容?
发布于 2010-08-12 06:51:18
我知道这有点老了,但不管怎样--我刚刚遇到了同样的问题,也不是第一次。然后,当我开始在失败的规范中插入debug语句来弄清楚发生了什么时,rake规范又开始工作了。因此,我怀疑当spec与rake相关时会发生某种缓存。如果这种情况再次发生,也许可以尝试运行
rake tmp:cache:clear甚至是
rake tmp:clearhttps://stackoverflow.com/questions/2364600
复制相似问题