1

我正在使用 karma-mocha ..我的 karma.conf 文件正在使用 karma-jasmine ...但不能使用 karma-mocha ....我的 karma.conf 文件:--

module.exports = function(config){
  config.set({

    basePath : '../app',

    preprocessors: {
      '**/*.html':'ng-html2js'
    },

    ngHtml2JsPreprocessor: {
      prependPrefix: '/'
    },

    files : [
    'node_modules/jquery/**/*.js',
      'lib/angular/angular.js',
      'lib/angular/angular-*.js',
      '../test/lib/angular-mocks.js',
      '../test/lib/sinon-1.15.0.js',
      '../test/chai/chai.js',
      'js/**/*.js',
      '../test/unit/**/*.js',
      '**/*.html'
    ],

    autoWatch : true,

    frameworks: ['mocha','requirejs','chai'],

    browsers : ['Chrome'],

    plugins : [
      'karma-chrome-launcher',
      'karma-mocha',
      'karma-ng-html2js-preprocessor',
      'karma-requirejs',
      'karma-chai'
    ],

    junitReporter : {
      outputFile: 'test_out/unit.xml',
      suite: 'unit'
    }

  });
};
4

2 回答 2

0

您缺少依赖 mocha.include 的chai lib路径files array

files : [
        'node_modules/jquery/**/*.js',
          'lib/angular/angular.js',
          'lib/angular/angular-*.js',
          '../test/lib/angular-mocks.js',
          '../test/lib/sinon-1.15.0.js',
          '../test/chai/chai.js',
          'js/**/*.js',
          '../test/unit/**/*.js',
          '**/*.html'
        ],
于 2016-03-19T18:09:13.493 回答
-1

我在 Jasmine 上也遇到过类似的情况。我想介绍一下我的解决方案。

试试错误消息中写的内容。有一个网站链接:http ://requirejs.org/docs/errors.html#notloaded

//If this code is not in a define call,
//DO NOT use require('foo'), but use the async
//callback version:
require(['foo'], function (foo) {
    //foo is now loaded.
});

我在 Coffee 脚本中为 Jasmine 编写的案例如下所示:

sinon = require(['sinon', 'jasmine-sinon']) (foo)->

现在我可以在我的单元测试中使用 sinon 作为对象,也可以按照 sinon 的文档,以及 jasmin-sinon。

于 2016-07-15T14:23:34.433 回答