2014-09-15 18 views
5

Uygulamam için Yeoman + Angular Jeneratör kullanıyorum ve Jasmine ile geçinmek için etrafta koşuyorum! Bu benim sıkıştığım yer. Jasmine testleri ile jQuery seçicilerini kullanabilmek istiyorum. karma-jasmine ve karma-jasmine-jquery paketlerini yükledim. Sonra bower için yükledim (yeni olduğum ve ne için kurulmalıdır diye bir fikrim yok!). El ile benim karma.conf.js yolu eklemiş, ama yine de bunu söylüyor mesajı alır:Jasmine-jquery sağlayıcı yok mu?

Running "karma:unit" (karma) task 
Warning: No provider for "framework:jasmine-jquery"! (Resolving: framework:jasmine-jquery) Use --force to continue. 

Bu gibi benim karma yapılandırma nasıl göründüğünü: Ben bu aynı problem vardı

// Karma configuration 
// http://karma-runner.github.io/0.12/config/configuration-file.html 
// Generated on 2014-09-12 using 
// generator-karma 0.8.3 

module.exports = function(config) { 
    'use strict'; 

    config.set({ 
    // enable/disable watching file and executing tests whenever any file changes 
    autoWatch: true, 

    // base path, that will be used to resolve files and exclude 
    basePath: '../', 

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

    // list of files/patterns to load in the browser 
    files: [ 
     'bower_components/jasmine-jquery/lib/jasmine-jquery.js', 
     'bower_components/angular/angular.js', 
     'bower_components/angular-mocks/angular-mocks.js', 
     'bower_components/angular-animate/angular-animate.js', 
     'bower_components/angular-cookies/angular-cookies.js', 
     'bower_components/angular-resource/angular-resource.js', 
     'bower_components/angular-route/angular-route.js', 
     'bower_components/angular-sanitize/angular-sanitize.js', 
     'bower_components/angular-touch/angular-touch.js', 
     'bower_components/angular-bootstrap/ui-bootstrap.js', 
     'app/scripts/**/*.js', 
     //'test/mock/**/*.js', 
     'test/spec/**/*.js', 
     'app/views/*.html' 
    ], 

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

    // web server port 
    port: 8080, 

    // Start these browsers, currently available: 
    // - Chrome 
    // - ChromeCanary 
    // - Firefox 
    // - Opera 
    // - Safari (only Mac) 
    // - PhantomJS 
    // - IE (only Windows) 
    browsers: [ 
     'PhantomJS' 
    ], 

    // Which plugins to enable 
    plugins: [ 
     'karma-phantomjs-launcher', 
     'karma-jasmine', 
     'karma-ng-html2js-preprocessor' 
    ], 

    preprocessors: { 
     'app/views/*.html': 'ng-html2js' 
    }, 

    ngHtml2JsPreprocessor: { 
     stripPrefix: 'app/', 
     moduleName: 'views' 
    }, 

    // Continuous Integration mode 
    // if true, it capture browsers, run tests and exit 
    singleRun: false, 

    colors: true, 

    // level of logging 
    // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG 
    logLevel: config.LOG_INFO, 

    // Uncomment the following lines if you are using grunt's server to run the tests 
    // proxies: { 
     // '/': 'http://localhost:9000/' 
    // }, 
    // URL root prevent conflicts with the site root 
    // urlRoot: '_karma_' 
    }); 
}; 

cevap

8

. Karma.conf.js dosyasında eklenti dizisine karma-jasmine-jquery ekleyerek düzeltildi. Bu benim karma.conf'um dolu.

module.exports = function(config) { 
    'use strict'; 

    config.set({ 
    // enable/disable watching file and executing tests whenever any file changes 
    autoWatch: true, 

    // base path, that will be used to resolve files and exclude 
    basePath: '../', 

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

    // list of files/patterns to load in the browser 
    files: [ 
     'bower_components/angular/angular.js', 
     'bower_components/angular-mocks/angular-mocks.js', 
     'app/scripts/**/*.js', 
     'test/mock/**/*.js', 
     'test/spec/**/*.js' 
    ], 

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

    // web server port 
    port: 8080, 

    // Start these browsers, currently available: 
    // - Chrome 
    // - ChromeCanary 
    // - Firefox 
    // - Opera 
    // - Safari (only Mac) 
    // - PhantomJS 
    // - IE (only Windows) 
    browsers: [ 
     'PhantomJS' 
    ], 

    // Which plugins to enable 
    plugins: [ 
     'karma-phantomjs-launcher', 
     'karma-jasmine-jquery', 
     'karma-jasmine', 

    ], 

    // Continuous Integration mode 
    // if true, it capture browsers, run tests and exit 
    singleRun: false, 

    colors: true, 

    // level of logging 
    // possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG 
    logLevel: config.LOG_INFO, 

    // Uncomment the following lines if you are using grunt's server to run the tests 
    // proxies: { 
    // '/': 'http://localhost:9000/' 
    // }, 
    // URL root prevent conflicts with the site root 
    // urlRoot: '_karma_' 
    }); 
}; 

yaptığım diğer değişiklik yasemin jquery docs göre en az 0.2.0 yasemin sürümünü gerektirir olmasıdır. Jeneratör 0.1.5 versiyonunu veriyor (en azından dün benim için yaptı). Bu yüzden bunu düzeltmek için 'npm install [email protected] --save-dev' yazdım. kaydetmek dev Bunu yapmak ama benim için kök package.json içinde devDependencies listelenen doğru paketleri Ben sahip olduğundan emin olmalılar:

Açıkçası
"karma-jasmine": "^0.2.0", 
"karma-jasmine-jquery": "^0.1.1", 

bu düğüm-modüllerde gerçek paketleri ile karşılık gelmelidir

o

C

+0

Güzel yardımcı olur umarım! Lütfen bunu deneyeyim ve geri döneyim. –

+0

Hey Şimdiye kadar bunu conf ekledim ve şimdi yeni bir hatam var: 'TypeError: jasmine undefined jasmine.spiedEventsKey = function (selector, eventName) {' –

+0

Merhaba, Güncellenmiş cevabımı gördünüz mü? Ben – Cathal