在Karma-mocha中没有定义chai

时间:2014-07-25 10:08:06

标签: javascript unit-testing karma-runner karma-mocha

我正在使用mocha-phantomjs配置成功运行我的测试用例。 现在我正在使用Karma启动器运行这些测试。 但是我得到了问题Chai is not defined

这是我的配置文件。

 module.exports = function(config) {
  config.set({
    client: {
        mocha: {
            ui: 'tdd'
        }
    },
    basePath: '',
    frameworks: ['mocha'],
    files: [
      'web/js/*.js',
      'test/lib/*.js',
      'node_modules/chai/chai.js'  //added this on suggestion of the answer in stackoverflow
    ],
    exclude: [
    ],
    preprocessors: {
    },
    reporters: ['progress'],
    port: 9876,
    colors: true,
    logLevel: config.LOG_INFO,
    autoWatch: true,
    browsers: ['Firefox'],
    singleRun: false,
  });
};

enter image description here

我已对此进行了研究,发现了links

2 个答案:

答案 0 :(得分:5)

我为chai安装了karma-chai插件 https://github.com/eclifford/karma-chai-jquery/issues/3

将框架更改为此。

frameworks: ['mocha', 'chai']

并添加这些依赖项。

npm install karma-chai --save-dev

现在我已经解决了我的问题。 希望这也会对你有所帮助。

答案 1 :(得分:1)

您可以按照已批准的答案中的建议安装karma-chai并将chai添加到您的框架中,它会起作用,但如果您不喜欢其他方式,也可以在通常列出依赖项的文件。使用bower安装chai并将bower_components/chai/chai.js添加到文件列表中,它应该可以正常工作。所以你的配置可能如下所示:

files: [
  'bower_components/chai/chai.js',
  '*.test.js'
],

在您上面的文件列表中,您根据StackOverflow上的某个人的建议添加了node_modules/chai/chai.js。它可能没有用,因为它在测试之前没有正确排序。

在我的karma.conf.js文件中,它指向https://npmjs.org/browse/keyword/karma-adapter以获取框架列表,奇怪的是karma-chai未包含在列表中,加上karma-chai似乎与RequireJS有问题