mocha+chai 怎样在karma 中使用?

呆呆笨笨
  • 469

参考阮老师的 mocha教程 大概了解mocha 和 chai 的使用了。

但在搭配karma 一起使用时:一直报错

> unit@0.0.1 test:karma_mocha_chai D:\webstorm\temps\unit
> karma start karma_mocha_chai/unit/karma.conf.js --single-run

21 09 2017 14:26:16.648:INFO [karma]: Karma v1.7.1 server started at http://0.0.0.0:9876/
21 09 2017 14:26:16.652:INFO [launcher]: Launching browser Chrome with unlimited concurrency
21 09 2017 14:26:16.661:INFO [launcher]: Starting browser Chrome
21 09 2017 14:26:21.290:INFO [Chrome 60.0.3112 (Windows 10 0.0.0)]: Connected on socket VJAXlrBpBVM-sA-CAAAA with id 72687362
Chrome 60.0.3112 (Windows 10 0.0.0) ERROR
  Uncaught ReferenceError: module is not defined
  at D:/webstorm/temps/unit/karma_mocha_chai/src/basic.js:10


Chrome 60.0.3112 (Windows 10 0.0.0) ERROR
  Uncaught ReferenceError: exports is not defined
  at D:/webstorm/temps/unit/karma_mocha_chai/src/es6.js:6


Chrome 60.0.3112 (Windows 10 0.0.0) ERROR
  Uncaught ReferenceError: require is not defined
  at specs/basic.spec.js:10

basic.spec.js

var add = require('../../src/basic.js');
var expect = require('chai').expect;

//测试套件(一个测试脚本中可以包含 多个测试 套件)
describe('测试用例', function () {
    //测试用例(一个测试套件 中可以包含 多个测试 用例)
    it('2 + 3 = 5', function () {
        expect(add(2, 3)).to.be.equal(5);
    })

    it('2 + 3 != 6', function () {
        expect(add(2, 3)).to.be.not.equal(6);
    })

})

karma.conf.js

module.exports = function (config) {
    config.set({
        frameworks: ['mocha', 'chai'],

        files: [
            '../src/*.js',
            'specs/*.js'
        ],

        browsers: ['Chrome'],

        autoWatch: true,

        plugins: [
            'karma-mocha',
            'karma-chai',
            'karma-chrome-launcher'
        ]
    })
}

package.json

"mocha": "^3.5.3",
"chai": "^4.1.2",
"karma": "^1.7.1",
"karma-chrome-launcher": "^2.2.0",
"karma-mocha": "^1.3.0",
"karma-chai": "^0.1.0",

备注:
直接使用mocha 对应的basic.spec.js 是可以的(非常简单的demo)

回复
阅读 3.4k
1 个回答
zt123123
  • 1
新手上路,请多包涵

你这个是在浏览器环境测试 没有cmd规范 需要安装requirejs 按照amd语法导入 并且在conf的framework配置下导入requirejs

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏