【问题标题】:Rails 3.1 & Jasmine: Including JavaScripts from gemsRails 3.1 & Jasmine:包括来自 gems 的 JavaScript
【发布时间】:2012-02-05 11:11:16
【问题描述】:

我有一个 Rails 3.1 项目,我想在该项目上运行一些 jasmine 规范。问题是,我的 rails 项目需要一些来自 gem(尤其是骨干轨)的 javascript 文件,而不是我的 /assets 目录。

查看生成的 jasmine 文件的 HTML,它成功地包含了 JavaScripts /assets 目录中的所有资产(从 coffeescript 编译),但没有 gem 生成的 javascript 文件。因此,我收到了一堆“找不到类”错误。

那么,关于让 jasmine 需要来自 gems 的 Rails 3.1 JavaScript 文件,而不仅仅是 /assets 有什么想法吗?当前的 jasmine.yml 包括在下面。任何想法表示赞赏

src_files:
  - public/javascripts/prototype.js
  - public/javascripts/effects.js
  - public/javascripts/controls.js
  - public/javascripts/dragdrop.js
  - public/javascripts/application.js
  - public/javascripts/**/*.js
  - spec/**/*_spec.js
  - "vendor/**/*.{js, coffee}"
  - "lib/**/*.{js, coffee}"
  - "app/**/*.{js, coffee}"

stylesheets:
  - stylesheets/**/*.css

helpers:
  - helpers/**/*.js

spec_files:
  - '**/*[sS]pec.{js, coffee}'

src_dir: assets

spec_dir: spec/javascripts

【问题讨论】:

  • 你运行测试的方法是什么:临时或通过 CI/部署策略?
  • rxgx:目前,临时。耙茉莉花;本地主机:8888
  • 是否有任何 gem 需要您运行 rake 任务来生成 javascript 或样式表?
  • rxgx: 不,backbone.js javascript 来自 gem 的 /lib 文件夹,而不是生成到应用程序中。

标签: javascript backbone.js jasmine rails-3.1


【解决方案1】:

最近对 jasmine master 的提交使其能够从资产管道中获取 javascript。效果很好。

https://github.com/pivotal/jasmine-gem/commits/master

【讨论】:

  • 听起来他的问题是针对不在资产管道中的 javascripts。
【解决方案2】:

我强烈建议使用 jasmine-headless-webkit 在 rails 3.1 应用程序中进行 jasmine 测试。这是我的jasmine.yml 文件:

src_dir: app/assets/javascripts
asset_paths:
- app/assets/templates
- lib/assets/javascripts
- vendor/assets/javascripts

src_files:
- [ 'application.js' ]

spec_dir: spec/javascripts

spec_files:
- "**/*[Ss]pec.*"

helpers:
- "helpers/**/*"

我将它与jasmine-headless-webkit 一起使用在命令行上运行我的测试(使用watchr 在文件更改时自动运行它们)

这是一种很棒的测试方式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-08
    • 2012-03-31
    • 2014-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-20
    相关资源
    最近更新 更多