update start karma instalar conf gruntjs karma-runner

gruntjs - start - JASMINE no está definido cuando trato de ejecutar el test runner de Karma



karma start (2)

Si desea utilizar la última versión estable de Karma (0.10.9), debe definir Jasmine en la sección frameworks y asegúrese de tener karma-jazmín en la sección de plugins , en su archivo de configuración de karma.

Aquí hay un archivo de configuración de ejemplo:

karma.conf.js

module.exports = function(config){ config.set({ // base path, that will be used to resolve files and exclude basePath: '''', // list of files / patterns to load in the browser files: [ {pattern: ''app/**/*.js'', watched: true, included: true, served: true} ], // list of files to exclude exclude: [ ], preprocessors: { }, proxies: { }, // test results reporter to use // possible values: ''dots'', ''progress'', ''junit'', ''growl'', ''coverage'' reporters: [''progress''], // web server port port: 9876, // enable / disable colors in the output (reporters and logs) colors: true, // level of logging // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG logLevel: config.LOG_INFO, autoWatch: true, // frameworks to use frameworks: [''jasmine''], // Start these browsers, currently available: // - Chrome // - ChromeCanary // - Firefox // - Opera // - Safari (only Mac) // - PhantomJS // - IE (only Windows) browsers: [ ''Chrome'' ], plugins: [ ''karma-chrome-launcher'', ''karma-firefox-launcher'', ''karma-script-launcher'', ''karma-jasmine'' ], // If browser does not capture in given timeout [ms], kill it captureTimeout: 60000, // Continuous Integration mode // if true, it capture browsers, run tests and exit singleRun: false }); };

Fuente: documentos de Karma-runner

Estoy tratando de conectar el corredor de prueba Karma, usando este proyecto inicial como modelo.

Hago el proyecto de semilla, lo construyo y el corredor de prueba funciona muy bien.

Cuando edito el archivo de configuración karma.conf.js para comenzar a incluir los archivos de mi proyecto y moverlo a mi configuración actual (fuera del proyecto inicial), aparece este error:

Running "karma:dev" (karma) task ERROR [config]: Error in config file! [ReferenceError: JASMINE is not defined] ReferenceError: JASMINE is not defined at module.exports (C:/dev_AD_2014.01_PHASE1/config/karma-dev.conf.js:4:7) ...

Creo que veo de qué se queja ... en el proyecto inicial, su archivo de configuración de karma es de un formato anterior, que debe tener JASMINE y JASMINE_ADAPTER definidos en alguna parte:

Seed Project karma config snippet

files = [ JASMINE, JASMINE_ADAPTER, ''../app/lib/angular/angular.js'', ''lib/angular/angular-mocks.js'', ''../app/js/*.js'', .... ]; exclude = [''karma.conf.js'']; ...

Mi configuración más nueva usa todos los complementos de grunt más recientes, y quiere que el archivo de configuración esté empaquetado en una definición de módulo así:

Mi fragmento de configuración de karma

module.exports = function(config) { config.set({ files: [ JASMINE, JASMINE_ADAPTER, // library and vendor files ''../dev/vendor/**/*.js'' ''../dev/app/**/*.js'' ], exclude: [''**/*.e2e.js'', ''../config/*.js''], reporters: [''progress''], ...

Por lo tanto, parece que el problema es claro: las versiones más nuevas de algunos plugins de grunt esperan la definición modular, pero son más largas para configurar JASMINE , etc., como variables definidas. Esa es mi suposición, pero estoy un poco perdido sobre cómo resolver esto. No quiero usar la versión de Karma que viene con el proyecto inicial si puedo evitarlo ... Creo que es la versión 0.4.4. Creo que la nueva versión estable es 0.10.x.

¿Qué estoy haciendo mal?

¡Gracias!


Incluir JASMINE y JASMINE_ADAPTER en la matriz de archivos es aplicable a las versiones de Karma 0.8.x y anteriores. Con las versiones más nuevas de Karma, que es la versión 0.13 actualmente, simplemente elimine esas 2 líneas de la matriz de archivos, ya que ya está cargando Jasmine como marco ( framework=[''jamsine''] ).