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

如何配置jasmine-browser-runner实现Rails(Sprockets)资产自动编译热更新

解决方案:一键启动+自动刷新JavaScript测试

1. 修改Jasmine配置,对接Rails动态资产编译

编辑项目根目录的jasmine-browser.json,将srcFiles从预编译的静态文件路径,改为指向Rails开发服务器的动态资产URL,同时配置代理转发资产请求:

{
  "srcFiles": [
    "http://localhost:3000/assets/application.js"
  ],
  "specFiles": [
    "spec/javascripts/**/*[sS]pec.js"
  ],
  "helpers": [
    "spec/javascripts/helpers/**/*.js"
  ],
  "server": {
    "port": 8888,
    "proxy": {
      "/assets": "http://localhost:3000/assets"
    }
  }
}

这样Jasmine测试页面会直接从Rails开发服务器加载实时编译的最新资产,彻底告别手动预编译、清理旧文件的操作。

2. 配置文件监听,自动刷新测试页面

在jasmine-browser.json中添加watchPaths,让Jasmine监听源码文件变化并自动刷新:

{
  // 保留原有配置
  "watchPaths": [
    "app/assets/javascripts/**/*.js",
    "app/assets/stylesheets/**/*.css",
    "spec/javascripts/**/*.js"
  ]
}

当上述路径下的文件修改时,Rails会自动重新编译资产,Jasmine也会同步刷新测试页面,无需手动干预。

3. 一条命令启动所有服务

安装concurrently工具,实现同时启动Rails开发服务器和Jasmine测试服务器:

npm install --save-dev concurrently

在项目package.json中添加自定义脚本:

{
  "scripts": {
    "test:js": "concurrently \"rails s -p 3000\" \"npx jasmine-browser-runner serve\""
  }
}

现在只需执行以下命令,即可一键启动所有服务:

npm run test:js

额外优化(可选)

如果不想看到Rails的冗余日志输出,可以将日志重定向到文件:

"test:js": "concurrently \"rails s -p 3000 > rails.log 2>&1\" \"npx jasmine-browser-runner serve\""

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 18:55:12