Cómo probar el código backend de nodejs con Karma (testacular)


Respuestas:


83

Tu no Karma es solo para probar código basado en navegador. Si tiene un proyecto con pruebas de mocha en el backend y karma / mocha en el front-end, intente editar su package.json en scripts para configurar la prueba en:mocha -R spec && karma run karma.con

Luego, si npm testdevuelve verdadero, sabrá que es seguro comprometerse o implementar.


¡Gracias! Encontré una solución usando Grunt que ya estaba planeando configurar en mi proyecto. Vea mi propia respuesta.
Sylvain

Básicamente, entonces, ¿todos los corredores de prueba para JS se basan en un navegador? Eso es inútil.

4
Mocha y Jasmine no dependen de un navegador, y cuando desee ejecutar un navegador sin cabeza, considere usar phantomjs.
Dan Kohn

2
Tenga en cuenta que confiar en un navegador para realizar pruebas NO es algo malo. Hay diferentes tipos de pruebas y las pruebas de extremo a extremo son válidas, dependiendo de sus necesidades. Incluso probar la regresión visual (ver huxley de Facebook) es importante en algunos casos.
Ciro Costa

15

Parece que no se puede hacer (gracias @dankohn). Aquí está mi solución usando Grunt:

  • Karma: actualice su archivo karma.conf.js

    • conjunto autoWatch = false;
    • conjunto singleRun = true;
    • set browsers = ['PhantomJS'];(para tener resultados en línea)
  • Gruñido:

    • npm install grunt-contrib-watch grunt-simple-mocha grunt-karma
    • configurar las dos tareas grunt (ver archivo grunt a continuación)

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 (opcional): configure grunt-watch para que se ejecute después de cambiar los archivos de especificaciones o los archivos que se probarán.

  • ejecutar todo usando el gruntcomando.


3
Por lo tanto, todavía necesita un navegador, es solo que el navegador no tiene cabeza. Qué inútil, definitivamente no usar karma para las pruebas del lado del servidor.

5
Hola, esto no está usando karma para backend, esto está usando mocha, así que no hay navegador. Esta es solo una forma conveniente de ejecutar todas sus pruebas tan pronto como guarde un archivo.
Sylvain

Si bien realmente no necesitaba Karma para lo que estaba haciendo, esto me llevó por un camino fácil para configurar grunt para ejecutar mis pruebas de mocha automáticamente, así que gracias por eso.
Michael Oryl

Enfoque interesante. Pero, ¿cómo se asegura de que los globales de Sails se reconozcan correctamente en sus pruebas?
dmvianna
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.