我正在为所有内容使用Coffeescript,尝试在测试中包含chai.js时遇到了麻烦。

我的configs/testacular.conf.js看起来像这样(请注意相对的basePath):

basePath = '../';

// Install devDependencies with `npm install` first before attempting to run Testacular!
files = [
  MOCHA,
  MOCHA_ADAPTER,
  'assets/js/lib/**/*.js',
  'test/lib/angular/*.js',
  'test/unit/**/*.coffee',
  'assets/js/*.coffee',
  'node_modules/chai/chai.js'
];

autoWatch = true;

browsers = ['Chrome'];


我列出node_modules/chai/chai.js而不是将其包括在我的资源中,因为我希望使用devDependencies通过npm install安装chai。

我的测试生活在test/unit/coolSpec.coffee中,其内容如下:

"use strict"

should = chai.should()

# Mocha/Chai specs for controllers go here
describe "OverviewCtrl", ->
  beforeEach ->
    ctrl = new OverviewCtrl()

  it "should do something awesome.", ->
    1.should.be.a 'string'


但是,睾丸无法找到chai

Uncaught ReferenceError: chai is not defined
    at /.../test/unit/coolSpec.coffee-compiled.js:5
Chrome 25.0 (Linux): Executed 0 of 0 ERROR (0.386 secs / 0 secs)


如何在不依靠RequireJS的情况下管理Javascript导入?

编辑:根据testacular documentation here,在files数组中列出文件的效果与在测试时将<script>标记插入浏览器的效果完全相同。这应该意味着所有符号都已导入。

但是话又说回来,也许就是问题所在:http://chaijs.com/chai.js本身是为RequireJS编写的。我可能别无选择,只能使用它!

最佳答案

转到chai's home page,然后选择下载浏览器版本的chai脚本,而不是用于NodeJS的版本。

您可以在浏览器中进行测试的chai脚本的直接链接位于:http://chaijs.com/chai.js

关于javascript - 如何在不使用RequireJS的情况下使用Testacular管理(咖啡)导入?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15299320/

10-11 15:45