Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何使用Karma测试nodejs后端代码(TestCular)_Node.js_Mocha.js_Karma Runner - Fatal编程技术网

Node.js 如何使用Karma测试nodejs后端代码(TestCular)

Node.js 如何使用Karma测试nodejs后端代码(TestCular),node.js,mocha.js,karma-runner,Node.js,Mocha.js,Karma Runner,如何设置Karma来运行后端单元测试(用Mocha编写)?如果我将我的后端测试脚本添加到文件=[],它将无法说明要求未定义。您没有。Karma仅用于测试基于浏览器的代码。如果您有一个后端带有mocha测试,前端带有karma/mocha的项目,请尝试在脚本下编辑package.json,将测试设置为:mocha-R spec&&karma run karma.con 然后,如果npm test返回true,您将知道提交或部署是安全的。似乎无法完成(谢谢@dankohn)。以下是我使用Grunt的

如何设置Karma来运行后端单元测试(用Mocha编写)?如果我将我的后端测试脚本添加到
文件=[]
,它将无法说明
要求
未定义。

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


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

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

  • Karma:更新您的Karma.conf.js文件

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

    • npm安装grunt contrib观看grunt simple mocha grunt karma
    • 配置两个grunt任务(请参阅下面的grunt文件)
grunfile.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
    命令运行所有


谢谢!我使用Grunt找到了一个解决方案,我已经计划在我的项目中设置Grunt。看看我自己的答案。基本上所有JS的测试运行者都依赖于浏览器吗?这是没有用的。Mocha和贾斯敏不依赖浏览器,当你想运行无头浏览器时,考虑使用幻像。注意依靠浏览器进行测试并不是一件坏事。有不同类型的测试,端到端测试是有效的,这取决于您的需要。甚至在某些情况下,测试视觉回归(见facebook的huxley)也很重要。所以你仍然需要一个浏览器,只是浏览器是无头的。真没用,绝对没有在服务器端测试中使用karma。嗨,这不是在后端使用karma,这是在使用mocha,所以没有浏览器。这只是一种在保存文件后立即运行所有测试的方便方法。虽然我所做的事情并不需要因果报应,但这确实让我找到了一条简单的途径,让grunt安装程序自动运行我的mocha测试,所以感谢这一点。有趣的方法。但您如何确保Sails globals在您的测试中得到正确识别?这是可以做到的,请看我的项目: