我在所有事情上都使用 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
with安装 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 编写的。我可能别无选择,只能使用它!