How to test nodejs backend code with Karma (testacular)

前端 未结 2 1951
有刺的猬
有刺的猬 2020-12-02 08:34

How do I setup Karma to run my backend unit tests (written with Mocha)? If I add my backend test script to the files = [], it fails stating that require

相关标签:
2条回答
  • 2020-12-02 08:58

    It seems like it cannot be done (thanks @dankohn). Here is my solution using Grunt:

    • Karma: update your karma.conf.js file

      • set autoWatch = false;
      • set singleRun = true;
      • set browsers = ['PhantomJS']; (to have inline results)
    • Grunt:

      • npm install grunt-contrib-watch grunt-simple-mocha grunt-karma
      • configure the two grunt tasks (see grunt file below)

    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 (optional): configure grunt-watch to run after changing spec files or files to be tested.

    • run all using grunt command.

    0 讨论(0)
  • 2020-12-02 09:07

    You don't. Karma is only for testing browser-based code. If you have a project with mocha tests on the backend and karma/mocha on the front end, try editing your package.json under scripts to set test to: mocha -R spec && karma run karma.con

    Then, if npm test returns true, you'll know it's safe to commit or deploy.

    0 讨论(0)
提交回复
热议问题