Man*_*rer 6 rake rspec ruby-on-rails
当我通过"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"}
Run Code Online (Sandbox Code Playgroud)
:state和:slug是url的必需属性.路线看起来像这样:
map.auction ':state/:slug', :controller => 'auctions', :action => 'show'
Run Code Online (Sandbox Code Playgroud)
我在环境文件中设置了在ActionMailer视图中使用url帮助程序所需的主机:
ActionMailer::Base.default_url_options[:host] = 'myhost.com'
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?为什么"rake spec"与"spec spec"的行为有所不同?使用其中一个时加载/未加载的任何东西?
我意识到这有点老了,但无论如何 - 我刚刚遇到了同样的问题,也不是第一次了。然后,当我开始将调试语句插入失败的规范以找出发生了什么时 - rake 规范再次工作。所以我怀疑当规范涉及 rake 时会发生某种缓存。如果再次出现这种情况,也许可以尝试运行
rake tmp:cache:clear
Run Code Online (Sandbox Code Playgroud)
甚至
rake tmp:clear
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1378 次 |
| 最近记录: |