Rails7中Capybara+RSpec Turbo Stream测试本地通过但GitHub Actions失败
Rails 7 Turbo Stream测试在GitHub Actions失败的解决方法
问题场景
基于Rails 7构建,集成Hotwire与Stimulus组件的应用,使用RSpec + Capybara + selenium_chrome_headless驱动执行测试。某Turbo Stream相关测试在本地环境可正常通过,但在GitHub Actions中持续失败。
错误表现
从GitHub Actions日志可见Capybara已成功启动Puma服务,但测试返回ActionController::UnknownFormat错误。
无效排查尝试
- 更换Selenium驱动
- 显式指定JavaScript驱动
解决方案
- 将GitHub Actions中的测试命令从
bin/rake修改为bundle exec rspec - 在执行测试前,先运行资源预编译命令:
bundle exec rails assets:precompile
原因推测
问题根源应为缺少部分JavaScript资源,导致Turbo Stream相关的请求格式处理逻辑无法正常运行。预编译操作确保了所有必要的前端资源被正确生成,而直接使用bundle exec rspec避免了rake命令可能带来的资源加载问题。
内容的提问来源于stack exchange,提问作者Łukasz Pająk
相关产品推荐
相关产品推荐

