web-dev-qa-db-fra.com

Comment tester le code backend de nodejs avec Karma (testacular)

Comment configurer Karma pour exécuter mes tests unitaires backend (écrits avec Mocha)? Si j'ajoute mon script de test backend au files = [], il ne parvient pas à préciser que require n’est pas défini.

86
Sylvain

Vous pas. Karma est uniquement destiné à tester le code basé sur un navigateur. Si vous avez un projet avec des tests mocha sur le backend et karma/mocha sur le front-end, éditez votre package.json sous des scripts pour définir test à: mocha -R spec && karma run karma.con

Puis si npm test renvoie true, vous saurez que la validation ou le déploiement est sans danger.

81
Dan Kohn

Il semble que cela ne puisse pas être fait (merci @dankohn). Voici ma solution en utilisant Grunt:

  • Karma: mettez à jour votre fichier karma.conf.js

    • ensemble autoWatch = false;
    • ensemble singleRun = true;
    • ensemble browsers = ['PhantomJS']; (pour avoir des résultats en ligne)
  • Grognement:

    • npm install grunt-contrib-watch grunt-simple-mocha grunt-karma
    • configurer les deux tâches Grunt (voir fichier Grunt ci-dessous)

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 (facultatif): configurez grunt-watch pour qu'il s'exécute après la modification des fichiers de spécifications ou des fichiers à tester.

  • tout exécuter en utilisant la commande grunt.

15
Sylvain