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'']
).