2

我在所有事情上都使用 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而不是将其包含在我的源代码中,因为我希望通过devDependencieswith安装 chai npm install

我的测试存在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 文档,在 files 数组中列出文件的效果正是<script>在测试时将标签插入浏览器的效果。这应该意味着所有符号都已导入。

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

4

1 回答 1

1

转到chai 的主页,然后选择下载 BROWSER 版本的 chai 脚本,而不是 NodeJS 的那个。

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

于 2013-03-14T06:46:23.700 回答