【问题标题】:getting Jasmine specs written in coffeescript to run让用咖啡脚本编写的 Jasmine 规范运行
【发布时间】:2012-01-24 17:07:00
【问题描述】:

我正在尝试让 Jasmine (jasmine-headless-webkit)、coffeescript 和骨干一起工作。

我很接近 - 我的网站在 coffeescript 和骨干上运行,我可以运行 coffeescript 书面测试 - 但我的问题是,我无法让我的咖啡脚本测试做任何有趣的事情。

如果我尝试在测试中创建模型实例,我会收到错误消息:

ReferenceError: Can't find variable: xxxx

仅供参考 - 我将它与guard-jasmine-headless-webkit 一起使用...

我一直在使用 Jasmine.yml 文件 - 但仍然无法让这些测试正常工作。有人有什么建议吗?

【问题讨论】:

  • 原因是 1) 文件包装器(您需要通过编写 window.xxx = xxxxxx 设为全局),或 2) 加载脚本的顺序(您需要确保xxx 被分配之前你的测试运行)。
  • 如果我使用 jasmine-headless-webkit,我还能使用 window.xxx 吗?
  • 不确定。要支持所有目标环境,请使用(window ? global).xxx
  • 是的,您可以使用 window.xxx,因为 JHW 使用 WebKit 浏览器来运行测试。

标签: backbone.js coffeescript jasmine


【解决方案1】:

Trevor 是对的 - 问题在于脚本的加载顺序(在我的 jasmine.yml 中)

我大部分都把它清理干净了……

helpers:
     - helpers/**/*.js

src_dir:
  - app/assets/javascripts
  - vendor/assets/javascripts

src_files:
  - "**/*.*"

spec_dir: spec/javascripts

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

stylesheets:
  - stylesheets/**/*.css

【讨论】:

  • Daniel,你最终是如何配置你的 jasmine.yml 文件的?我似乎无法让我们的 CI 在下划线/主干之前加载 jquery,也无法先加载 application.js。
  • 另外,src_dir 最好是 app/assets/javascripts 的完整路径,我改成 app/assets 比 sprocket 在 require 中找不到脚本文件。
【解决方案2】:

友好的更新:如果您使用 Rails 资产管道进行咖啡脚本编译,最近发布的 Jasmine gem 通过 rails 资产管道增加了对咖啡脚本的支持。巨大的进步。它是 1.2.0 版本(不是候选版本,官方 1.2.0 版本) https://github.com/pivotal/jasmine-gem

【讨论】:

    猜你喜欢
    • 2013-02-16
    • 1970-01-01
    • 2013-09-16
    • 2011-06-30
    • 2012-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多