You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级Rails至5.2后,Rspec中ActionMailer报找不到浏览器命令错误

Rails 4.2升级到5.2后ActionMailer测试报错Launchy找不到浏览器的解决办法

问题原因

Rails 5.2对ActionMailer的预览机制做了调整,测试环境下如果意外开启了邮件预览功能(show_previews),Launchy会尝试调用浏览器打开预览,但测试环境通常没有配置浏览器路径,就会抛出这个错误。即使你设置了delivery_method = :test,只要预览功能开启,Launchy还是会触发。

解决步骤

  • 检查测试环境配置文件config/environments/test.rb,确保添加或设置:
    config.action_mailer.show_previews = false
    
    测试环境默认应该是关闭预览的,但升级过程中可能配置被覆盖或遗漏,手动设置后就能阻止Launchy尝试调用浏览器。
  • 如果确实需要在测试环境预览邮件,直接指定Launchy的浏览器路径:
    Linux/macOS终端运行测试前设置:
    export LAUNCHY_BROWSER=/usr/bin/chromium-browser
    
    Windows命令行运行测试前设置:
    set LAUNCHY_BROWSER="C:\Program Files\Google\Chrome\Application\chrome.exe"
    
  • 更新Launchy版本到兼容Rails 5.2的版本,在Gemfile中修改:
    gem 'launchy', '~> 2.5'
    
    然后执行bundle update launchy,旧版本的Launchy可能和Rails 5.2的预览机制不兼容。
  • 再次确认测试环境的邮件投递方式确实是:test,检查config/environments/test.rb中的配置:
    config.action_mailer.delivery_method = :test
    
    避免升级时配置文件被错误合并导致投递方式变更。

内容的提问来源于stack exchange,提问作者soltex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 16:40:26