如何使用Karma(testacular)测试nodejs后端代码

Syl*_*ain 86 mocha.js node.js karma-runner

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

Dan*_*ohn 81

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

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

  • Mocha和Jasmine不依赖浏览器,当你想在无头浏览器上运行时,可以考虑使用phantomjs. (4认同)
  • 请注意,依靠浏览器进行测试并不是坏事.有不同类型的测试,端到端测试是有效的,取决于您的需求.在某些情况下,甚至测试视觉回归(参见facebook的huxley)也很重要. (2认同)

Syl*_*ain 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']);
};
Run Code Online (Sandbox Code Playgroud)
  • Grunt(可选):设置grunt-watch以开始测试更改测试文件或规格本身.

  • 使用grunt命令运行所有.

  • 嗨,这不是使用后端的业力,这是使用摩卡,所以没有浏览器.这只是保存文件时运行所有测试的便捷方式. (5认同)
  • 所以你仍然需要一个浏览器,只是浏览器是无头浏览器.多么无用,绝对没有使用业力进行服务器端测试. (3认同)