2013-08-06 29 views
27

Tôi đang cố chạy bảo hiểm bằng nghiệp chướng và tôi nhận được cảnh báo: WARN [preprocess]: Không thể tải "vùng phủ sóng", nó chưa được đăng ký!Không thể chạy Bảo hiểm với Karma

tôi nghĩ rằng tôi cài đặt bảo hiểm khi tôi chạy 'NPM cài đặt -g nghiệp-bảo hiểm --save-dev'

Dưới đây là tập tin cấu hình của tôi:

module.exports = function(config) { 
     config.set({ 
     // base path, that will be used to resolve files and exclude 
     basePath: '', 

     frameworks: ['jasmine'], 

     // list of files/patterns to load in the browser 
     files: [ 
       bunch of files.. 
     ], 

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

     // use dots reporter, as travis terminal does not support escaping sequences 
     // possible values: 'dots', 'progress' 
     // CLI --reporters progress 
     reporters: ['progress', 'coverage'], 

     junitReporter: { 
      // will be resolved to basePath (in the same way as files/exclude patterns) 
      outputFile: 'test-results.xml' 
     }, 

     // web server port 
     // CLI --port 9876 
     port: 9876, 

     // enable/disable colors in the output (reporters and logs) 
     // CLI --colors --no-colors 
     colors: true, 

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

     // enable/disable watching file and executing tests whenever any file changes 
     // CLI --auto-watch --no-auto-watch 
     autoWatch: true, 

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

     // If browser does not capture in given timeout [ms], kill it 
     // CLI --capture-timeout 5000 
     captureTimeout: 20000, 

     // Auto run tests on start (when browsers are captured) and exit 
     // CLI --single-run --no-single-run 
     singleRun: true, 

     // report which specs are slower than 500ms 
     // CLI --report-slower-than 500 
     reportSlowerThan: 500, 

     // compile coffee scripts 
     preprocessors: { 
      'someFileName': ['coverage'], 
     }, 

     plugins: [ 
      'karma-jasmine', 
      'karma-chrome-launcher', 
      'karma-firefox-launcher', 
     ], 

    coverageReporter: { 
     'type' : 'cobertura', 
     'dir': 'coverage/' 
    } 

    }); 
}; 
+1

Bạn đã bao giờ giải quyết vấn đề này chưa? Một điều mà tôi nhận thấy đôi khi ném những thứ cho một vòng lặp là toàn cầu vs cài đặt địa phương. Thông thường, tôi đã phải sử dụng một "liên kết npm" để có được những thứ để làm việc. tức là: npm liên kết karma-bảo hiểm trong trường hợp này. Ngoài ra, tôi nghĩ rằng bạn thực sự cần phải có "bảo hiểm nghiệp" trong danh sách plugin của bạn. – Aerophilic

Trả lời

10

Đối với những gì nó có giá trị, điều này hoạt động tốt cho tôi. Cài đặt với:

npm install -g karma 
npm install -g karma-coverage 

Config trong karma.config.js:

module.exports = function(config) { 
    config.set({ 
    basePath: '', 
    frameworks: ['jasmine'], 
    files: ['app.js','tests.js'], 
    preprocessors: { 'app.js': 'coverage' }, 
    reporters: ['dots', 'coverage'], 
    port: 9876, 
    colors: true, 
    logLevel: config.LOG_INFO, 
    autoWatch: true, 
    browsers: ['Chrome'], 
    captureTimeout: 60000, 
    singleRun: false 
    }); 
}; 

Run với karma start karma.config.js.

+1

fwiw điều này không sản xuất bảo hiểm cho tôi. – shellscape

+0

nơi nào các lệnh npm đó cài đặt vào linux? – FutuToad

+1

Thông thường '/ usr/local/bin /' và '/ usr/local/lib/node_modules' tôi nghĩ. – RichardTowers

45

Tôi nhận được [WARN] vì plugin 'karma-coverage' không được xác định bên trong các plugin của cấu hình, hãy thử xem liệu nó có sửa chữa cảnh báo của bạn hay không, không chắc chắn nó có khắc phục được sự cố đầy đủ của bạn hay không.

plugins: [ 
    'karma-jasmine', 
    'karma-coverage', 
    'karma-chrome-launcher', 
    'karma-firefox-launcher', 
], 

UPDATE:
Tôi cũng đã có một vấn đề khác nhau khi chạy độ che phủ, do istanbul, lỗi của tôi là

[bảo hiểm]: [Lỗi Loại: Không thể thiết lập thuộc tính 'phủ' không xác định]

Sau khi có một cái nhìn những gì istanbul đã làm nó bật ra rằng các đường dẫn đến một số tập tin đơn vị js của tôi đã lỗi thời trong preprocessor.

Nó đang thực hiện một số báo cáo bảo hiểm nhưng nó không tạo ra các báo cáo phủ sóng sâu cho tất cả các tệp do đó có lỗi. Một khi tôi đã sửa các đường dẫn, tất cả đều tốt.

preprocessors : { 
     '**/app/js/*/*.js' : 'coverage', 
     '**/app/js/modules/*/*.js' : 'coverage', 
     '**/app/js/services/*/*.js' : 'coverage' 
    }, 
+0

Làm việc cho tôi, cảm ơn. –

+2

Nếu bạn đang chạy gói nút nghiệp vụ được cài đặt trên toàn cầu, thì tất cả các plugin nghiệp bổ sung khác cũng phải được cài đặt trên toàn cầu; Nếu bạn đang chạy một dự án địa phương nghiệp, bạn cần phải đảm bảo bổ sung karma khác được cài đặt tại địa phương cho dự án của bạn. Việc có các karma bổ sung tại địa phương và tung ra một nghiệp vụ được cài đặt toàn cầu sẽ dẫn đến loại lỗi “không được đăng ký nghiệp vụ”. – Yiling

+0

Trong trường hợp của tôi, tất cả những gì tôi phải làm là chạy "npm install karma-covered" (không cần phần plugin) –

9

Đối với những người đang sử dụng thử nghiệm grunt để chạy thử nghiệm nghiệp vụ và gặp vấn đề về plugin phủ sóng không được tải. Vui lòng thêm các thiết lập plugins thành nhiệm vụ Gruntfiles.js Karama của bạn, ví dụ:

// Test settings 
karma: { 
    unit: { 
    configFile: 'test/karma.conf.js', 
    singleRun: true, 
    plugins:[ 
     'karma-jasmine', 
     'karma-coverage', 
     'karma-phantomjs-launcher' 
    ], 
    } 
} 
2

tôi đã cùng một vấn đề, cho đến khi tôi chuyển karma.conf.js vào cùng thư mục với package.json, sau đó nó làm việc.

+0

Tôi có chúng trong cùng một thư mục nhưng tôi vẫn gặp lỗi –

0

Tôi đã cài đặt nghiệp-bảo hiểm toàn cầu nó làm việc cho tôi :-)

npm install -g karma-coverage 
+0

Điều này làm việc cho tôi ... tại sao? Tôi không muốn cài đặt nó trên toàn cầu. –

0

Vấn đề này được mô tả trong this answer.

Khi sử dụng nghiệp vụ được cài đặt trên toàn cầu, nó không tải các plugin được cài đặt cục bộ. Sử dụng node_modules/.bin/karma để bắt đầu kiểm tra sẽ giải quyết vấn đề này.

Việc cài đặt mô-đun phủ sóng trong "không gian tên" chung cũng hoạt động nhưng có lẽ không phải là những gì bạn muốn.

0

Tôi nghĩ rằng giải pháp đúng là

KHÔNG cài đặt nghiệp trên toàn cầu

INSTALL nghiệp-cli toàn cầu và cài đặt nghiệp tại địa phương

npm i -g karma-cli

That's the problem then, you should use karma-cli globally, http://karma-runner.github.io/0.12/intro/installation.html If you install karma globally it doesn't use the local installation.

tham khảo: github

Các vấn đề liên quan