87

如何设置 Karma 来运行我的后端单元测试(用 Mocha 编写)?如果我将我的后端测试脚本添加到files = [],它会失败,说明require未定义。

4

2 回答 2

83

你没有。Karma 仅用于测试基于浏览器的代码。如果您的项目在后端有 mocha 测试,在前端有 karma/mocha,请尝试在脚本下编辑您的 package.json 以将 test 设置为:mocha -R spec && karma run karma.con

然后,如果npm test返回 true,您将知道提交或部署是安全的。

于 2013-05-21T01:45:29.083 回答
15

似乎无法完成(感谢@dankohn)。这是我使用 Grunt 的解决方案:

  • Karma:更新你的 karma.conf.js 文件

    • autoWatch = false;
    • singleRun = true;
    • 设置browsers = ['PhantomJS'];(具有内联结果)
  • 咕哝:

    • npm install grunt-contrib-watch grunt-simple-mocha grunt-karma
    • 配置两个 grunt 任务(参见下面的 grunt 文件)

Gruntfile.js:

module.exports = function (grunt) {
  grunt.loadNpmTasks('grunt-simple-mocha');
  grunt.loadNpmTasks('grunt-karma');

  grunt.initConfig({
    simplemocha: {
      backend: {
        src: 'test/server-tests.js'
      }
    },
    karma: {
      unit: {
        configFile: 'karma.conf.js'
      }
    }
  });

  // Default task.
  grunt.registerTask('default', ['simplemocha', 'karma']);
};
  • Grunt(可选):配置 grunt-watch 在更改规范文件或要测试的文件后运行。

  • grunt使用命令运行所有。

于 2013-05-23T03:42:48.993 回答