2012-06-07 24 views

Respuesta

4

Aún no creo que haya un paquete jasmine-browserify, y realmente no concuerda con la forma de hacer de Browserify/NPM (evite las exportaciones globales).

Por ahora, sólo incluyen /node_modules/jasmine-reporters/ext/jasmine.js y jasmine-html.js en la parte superior de mi <head>, y requieren todas las especificaciones de mi en un nivel superior spec_entry.js que luego utilizo como punto de entrada para un paquete Browserify que puse justo después de la <head>. (Tenga en cuenta que si el punto de entrada no es de nivel superior, tendrá un mal momento debido a un error prolongado y retorcido en Browserify).

Esto se juega muy bien con jasmine-node, siempre y cuando no suponga la presencia de un document global o window. Sin embargo, debe recordar registrar sus especificaciones en ese spec_entry.js, a menos que desee hackear Browserify para que rastree sus directorios para los archivos .spec.js.

Estaría muy interesado en una solución más elegante, sin embargo, que funcionaría de forma transparente con jasmine-node y browserify.

+3

Hola, muy tarde para la fiesta, pero si es sigue siendo útil para ti, mira mi respuesta o https://github.com/amitayd/grunt-browserify-jasmine-node-example –

8

He creado un proyecto de ejemplo detallado que aborda las pruebas de jazmín (y otros) - consulte https://github.com/amitayd/grunt-browserify-jasmine-node-example. Debate en my blog post

El enfoque en este aspecto fue crear un paquete Browserify para el código fuente principal (donde se exponen todos los módulos) y uno para pruebas que depende del código fuente principal externo. Entonces las pruebas se pueden ejecutar tanto en PhantomJS como en un navegador real.

4

Si usa grunt-watchify, no es necesario crear spec_entry.js. Sólo tiene que utilizar requerir en sus especificaciones, y luego empaquetar con las especificaciones de su ronco-watchify:

watchify: { 
     test: { 
      src: './spec/**/*Spec.js', 
      dest: 'spec/spec-bundle.js' 
     } 
    }, 
    jasmine: { 
     test: { 
      options: { 
       specs: 'spec/spec-bundle.js' 
      } 
     } 
    }, 

A continuación, ejecutar las pruebas con

grunt.registerTask('test', ['watchify:test','jasmine:test']); 
0

También es posible que desee ver en el Karma. Es realmente fácil de configurar y vigilará los cambios y volverá a ejecutar su prueba. Echa un vistazo a este proyecto de muestra que usa Karma para probar un proyecto de navegador/reacción. Solo necesita agregar algunas dependencias y crear un archivo karma.conf.js.

https://github.com/TYRONEMICHAEL/react-component-boilerplate

1

Como todas las respuestas anteriores son poco anticuado (por supuesto esto no significa que no están trabajando más etc.) Me gustaría señalar a https://github.com/nikku/karma-browserify este es un preprocesador para el corredor karma. Combina archivos de prueba con todas las dependencias requeridas. Dicho paquete de browserify creado se pasa al karma, cuya base en la configuración lo ejecuta. Tenga en cuenta que puede elegir cualquier marco de prueba moderno (jasmin, mocha ...) y navegadores (phantom, chrome ..) Probablemente esto es exactamente lo que necesita :)

Cuestiones relacionadas