2015-07-28 16 views
5

Ho un progetto Angularjs e sto usando il karma per eseguire i test. Sono in esecuzione in alcuni problemi con esso, ottenendo questo errore:Errore: Nessun fornitore per "framework: browserify"! (Risoluzione: framework: browserify)

ReferenceError: Can't find variable: require 
at http://localhost:9876/base/src/test/bower_components/angular-animate/index.js?b8fe1c0a06b723a75c7e596fd8a86d91965f681c:1 

Reding in alcuni forum, mi è stato detto di usare il karma browserify, ma sto ottenendo questo errore ora:

28 07 2015 22:41:15.573:WARN [preprocess]: Can not load "browserify", it is not registered! 
     Perhaps you are missing some plugin? 
    /Users/brunosiqueira/WebstormProjects/copcast-admin/node_modules/karma/node_modules/di/lib/injector.js:9 
      throw error('No provider for "' + name + '"!'); 
       ^
    Error: No provider for "framework:browserify"! (Resolving: framework:browserify) 
     at error (/Users/brunosiqueira/WebstormProjects/copcast-admin/node_modules/karma/node_modules/di/lib/injector.js:22:68) 
     at Object.parent.get (/Users/brunosiqueira/WebstormProjects/copcast-admin/node_modules/karma/node_modules/di/lib/injector.js:9:13) 
     at get (/Users/brunosiqueira/WebstormProjects/copcast-admin/node_modules/karma/node_modules/di/lib/injector.js:54:19) 
     at /Users/brunosiqueira/WebstormProjects/copcast-admin/node_modules/karma/lib/server.js:128:20 
     at Array.forEach (native) 
     at Server._start (/Users/brunosiqueira/WebstormProjects/copcast-admin/node_modules/karma/lib/server.js:127:21) 
     at invoke (/Users/brunosiqueira/WebstormProjects/copcast-admin/node_modules/karma/node_modules/di/lib/injector.js:75:15) 
     at Server.start (/Users/brunosiqueira/WebstormProjects/copcast-admin/node_modules/karma/lib/server.js:92:18) 
     at Function.Server.start (/Users/brunosiqueira/WebstormProjects/copcast-admin/node_modules/karma/lib/server.js:101:10) 
     at Object.<anonymous> (/Applications/WebStorm.app/Contents/plugins/js-karma/js_reporter/karma-intellij/lib/intellijServer.js:10:8) 
     at Module._compile (module.js:460:26) 
     at Object.Module._extensions..js (module.js:478:10) 
     at Module.load (module.js:355:32) 
     at Function.Module._load (module.js:310:12) 
     at Function.Module.runMain (module.js:501:10) 
     at startup (node.js:129:16) 

Qualcuno sai cosa sta succedendo? Questo è il mio file karma.conf:

{ 
     // Karma configuration 
     // Generated on Tue May 19 2015 15:02:17 GMT+0100 (WEST) 

     module.exports = function(config) { 
     config.set({ 

      // base path that will be used to resolve all patterns (eg. files, exclude) 
      basePath: '', 

      plugins: [ 
      'karma-browserify', 
      'karma-phantomjs-launcher', 
      'karma-jasmine', 
      'karma-ng-html2js-preprocessor', 
      'karma-spec-reporter' 

      ], 

      // testing framework to use (jasmine/mocha/qunit/...) 
      frameworks: [ 'browserify','jasmine'], 

      // list of files/patterns to load in the browser 
      files: [ 
      'http://maps.googleapis.com/maps/api/js?sensor=false&language=en', 
      // bower:js 
      'bower_components/jquery/dist/jquery.js', 
      'bower_components/bootstrap-sass/assets/javascripts/bootstrap.js', 
      'bower_components/bootstrap-select/dist/js/bootstrap-select.js', 
      'bower_components/angular/angular.js', 
      'bower_components/angular-animate/angular-animate.js', 
      'bower_components/angular-cookies/angular-cookies.js', 
      'bower_components/angular-touch/angular-touch.js', 
      'bower_components/angular-sanitize/angular-sanitize.js', 
      'bower_components/angular-resource/angular-resource.js', 
      'bower_components/angular-route/angular-route.js', 
      'bower_components/angular-bootstrap/ui-bootstrap-tpls.js', 
      'bower_components/angular-ui-utils/ui-utils.js', 
      'bower_components/angular-ui-map/ui-map.js', 
      'bower_components/angular-http-auth/src/http-auth-interceptor.js', 
      'bower_components/ng-file-upload/ng-file-upload.js', 
      'bower_components/ng-file-upload-shim/ng-file-upload-shim.js', 
      'bower_components/angular-notify/dist/angular-notify.js', 
      'bower_components/moment/moment.js', 
      'bower_components/angular-gettext/dist/angular-gettext.js', 
      // endbower 
      'src/app/**/*.js', 
      'src/app/views/**/*.html', 
      'src/test/**/*.js' 
      ], 

      // list of files/patterns to exclude 
      exclude: [ 
      ], 

      // preprocess matching files before serving them to the browser 
      // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor 
      preprocessors: { 
      '**/*.html': ['ng-html2js'], 
      '**/*.js': [ 'browserify' ] 
      }, 
      ngHtml2JsPreprocessor: { 
      // strip this from the file path 
      stripPrefix: 'src/', 
      // prepend this to the 


      // setting this option will create only a single module that contains templates 
      // from all the files, so you can load them all with module('foo') 
      moduleName: 'templatesForTest' 
      }, 

      // test results reporter to use 
      // possible values: 'dots', 'progress', 'spec' 
      // available reporters: https://npmjs.org/browse/keyword/karma-reporter 
      reporters: ['spec'], 


      // 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, 


      // enable/disable watching file and executing tests whenever any file changes 
      autoWatch: true, 


      // start these browsers 
      // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher 
      browsers: ['PhantomJS'], 


      // Continuous Integration mode 
      // if true, Karma captures browsers, runs the tests and exits 
      singleRun: false 
     }); 
     }; 

    } 
+0

Guardando l'esempio di base direi che non hai finito di configurare browserify come il messaggio di errore dice. https://www.npmjs.com/package/karma-browserify –

+0

Hai provato 'npm install --save-dev karma-browserify'? – mostruash

risposta

1

Ho avuto alcuni problemi con diverse versioni delle librerie. Ma alla fine, ho avuto modo di far funzionare in questo modo:

Il mio file package.json:

"karma": "0.12.0", 
"karma-html2js-preprocessor": "0.1.0", 
"karma-jade-preprocessor": "0.0.11", 
"karma-jasmine": "0.1.5", 
"karma-ng-html2js-preprocessor": "0.1.2", 
"karma-phantomjs-launcher": "0.1.4", 
"karma-requirejs": "0.2.1", 
"karma-script-launcher": "0.1.0", 
"karma-coffee-preprocessor": "0.2.1", 

"brfs": "^1.2.0", 
"browserify-shim": "~3.8.0", 
"karma-browserify": "^3.0.0", 

Il mio file karma.conf.js:

// Karma configuration 
// Generated on Tue May 19 2015 15:02:17 GMT+0100 (WEST) 
module.exports = function(config) { 
    config.set({ 

// base path that will be used to resolve all patterns (eg. files, exclude) 
basePath: '', 

// testing framework to use (jasmine/mocha/qunit/...) 
frameworks: [ 'jasmine', 'browserify'], 

// list of files/patterns to load in the browser 
files: [ 
    'http://maps.googleapis.com/maps/api/js?sensor=false&language=en', 
    // bower:js 
    'bower_components/jquery/dist/jquery.js', 
    'bower_components/bootstrap-sass/assets/javascripts/bootstrap.js', 
    'bower_components/bootstrap-select/dist/js/bootstrap-select.js', 
    'bower_components/angular/angular.js', 
    'bower_components/angular-animate/angular-animate.js', 
    'bower_components/angular-cookies/angular-cookies.js', 
    'bower_components/angular-touch/angular-touch.js', 
    'bower_components/angular-sanitize/angular-sanitize.js', 
    'bower_components/angular-resource/angular-resource.js', 
    'bower_components/angular-route/angular-route.js', 
    'bower_components/angular-mocks/angular-mocks.js', 
    'bower_components/angular-bootstrap/ui-bootstrap-tpls.js', 
    'bower_components/angular-ui-utils/ui-utils.js', 
    'bower_components/angular-ui-map/ui-map.js', 
    'bower_components/angular-http-auth/src/http-auth-interceptor.js', 
    'bower_components/ng-file-upload/ng-file-upload.js', 
    'bower_components/ng-file-upload-shim/ng-file-upload-shim.js', 
    'bower_components/angular-notify/dist/angular-notify.js', 
    'bower_components/moment/moment.js', 
    'bower_components/angular-gettext/dist/angular-gettext.js', 
    // endbower 
    'src/app/**/*.js', 
    'src/app/views/**/*.html', 
    'src/test/**/*.js' 
], 

// list of files/patterns to exclude 
exclude: [ 
], 

// preprocess matching files before serving them to the browser 
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor 
preprocessors: { 
    '**/*.html': ['ng-html2js'], 
    'src/**/*.js': ['browserify'] 
}, 

browserify: { 
    debug: true, 
    transform: [ 'brfs' ] 
}, 
ngHtml2JsPreprocessor: { 
    // strip this from the file path 
    stripPrefix: 'src/', 
    // prepend this to the 


    // setting this option will create only a single module that contains templates 
    // from all the files, so you can load them all with module('foo') 
    moduleName: 'templatesForTest' 
}, 

// test results reporter to use 
// possible values: 'dots', 'progress', 'spec' 
// available reporters: https://npmjs.org/browse/keyword/karma-reporter 
reporters: ['spec'], 


// 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, 


// enable/disable watching file and executing tests whenever any file changes 
autoWatch: true, 


// start these browsers 
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher 
browsers: ['PhantomJS'], 


// Continuous Integration mode 
// if true, Karma captures browsers, runs the tests and exits 
singleRun: false 
    }); 
}; 

UPDATE

Ho aggiornato di recente tutte le mie librerie alla versione più recente e ho ricevuto nuovamente questo errore. Mi sono reso conto che mi mancava la libreria e il browserify watchify stessi. Così ho installato le due librerie mancanti e tutto ha funzionato perfettamente.

npm install --save-dev karma-browserify browserify watchify 
1

Ho avuto un problema simile:

Warning: No provider for "framework:mocha"! (Resolving: framework:mocha)

Ciò è accaduto perché non ho incluso il plugin. config corretto:

... 
singleRun: true, 
plugins: ['karma-phantomjs-launcher', 'karma-mocha'], // here 
frameworks: ['mocha'], 
... 

Degno di menzione, dovrete installare il plugin:

npm install karma-mocha --save-dev 

https://www.npmjs.com/package/karma-mocha


Dopo ulteriori sperimentazioni, sembra che questo è il messaggio di errore consegnato quando non avete incluso il plug-in per un quadro specifico:

... 
plugins: ['karma-phantomjs-launcher', 'karma-mocha', 'karma-chai'], 
frameworks: ['mocha', 'chai'], // Will require the plugins above 
... 
Problemi correlati