这似乎是一种寻找圣杯的方法,但我正在寻找一个 JavaScript 单元测试环境的设置。要求是:
- 测试 Requirejs AMD 模块
- 通过模拟依赖关系来隔离每个模块
- 开发期间可在浏览器中测试
- 可在无头环境中测试以实现持续集成
除了无头嘲讽之外的一切似乎都是直截了当的。
到目前为止,我已经测试了JS-Test-Driver、Karma和Phantomjs,并且为了模拟,我使用了Squire和Isolate ——以及此处答案中的代码实现,似乎没有什么工作完全正确. 我一次又一次遇到的主要问题是测试框架在所有测试运行之前返回——主要是因为模拟需要它们自己的require()
依赖项。
任何帮助(或脚手架)都会有帮助!
[编辑]
我在 Github 上建立了一个基本的、可工作的Karma 项目,其中包含一些示例模拟测试,使用 chai-expect 作为匹配库。我会尝试添加更多有用的文档,但如果您熟悉 Karma,它应该很容易扩展。只是git clone
然后npm install
让它运行。