Lỗi: Bạn cần bao gồm một số bộ điều hợp triển khai phương thức bắt đầu __karma __.


91

Tôi đang cố gắng thêm một số bài kiểm tra đơn vị vào một trong các dự án của mình.

Cho đến nay, tôi đã cài đặt và cấu hình karma, và đã cài đặt jasmine. Tôi có một tệp thử nghiệm trong test/thư mục của mình .

Máy chủ nghiệp vụ đã khởi động, trang trình duyệt đã sẵn sàng, nhưng karma runkhông thành công như sau:

$ karma run karma-conf.js 
[2014-06-14 15:19:11.046] [DEBUG] config - Loading config /foo/test/karma-conf.js
Waiting for previous execution...
Chrome 35.0.1916 (Linux) ERROR
  You need to include some adapter that implements __karma__.start method!

Thông báo lỗi này không phù hợp với Google.

Đây là điều gì đó hiển nhiên hay tôi cần cung cấp thêm thông tin?


2
Tôi muốn lưu ý rằng tôi đã nhận được lỗi này do lỗi cú pháp của bộ xử lý trước mà tôi không nhận thấy lúc đầu.
BradGreens

Câu trả lời:


73

Có vẻ như đây là một lỗi rất chung chung, tuy nhiên trong trường hợp của tôi, vấn đề là tôi không chạy karma starttừ đúng thư mục hoặc tôi không khởi động lại nó sau khi thay đổi cấu hình.

Tôi sẽ để ngỏ câu hỏi này và hy vọng nó có thể trở thành tài nguyên cho những người khác gặp phải thông báo lỗi này.


26
Đối với tôi cũng vậy - chạy karma start test/karma.conf.jsđã là một mẹo nhỏ đối với tôi. Thư mục phù hợp có thể khác với bạn.
Jason

3
Tôi gặp lỗi này khi thêm bộ tiền xử lý: {'src / ** / *. Js': ['babel']}, có ý kiến ​​gì không?
SuperUberDuper

5
Đối với tôi thay đổi test/**/*.{js,jsx}để test/**/*.+(js|jsx)sửa lỗi này. Thật kỳ quái!
cây bách xù-

1
Cũng báo lỗi như vậy có thể xuất hiện nếu nghiệp chướng cấu hình có lỗi đánh máy
sergolius

28

Nếu bạn đặt tên cho tệp cấu hình karma của mình karma.conf.js, bạn có thể chỉ cần nhập karma start.

Nếu không, hãy chỉ định tên tệp karma start karmafile.js

(Tôi đã ở đúng thư mục, nhưng không chỉ định tên tệp.)


13

Bạn cần chạy karma runchức năng của mình hoặc bất kỳ chức năng nào trong thư mục chứa karma-conf.js.


Điều này có vẻ không đúng. Nếu tôi chạy karma starttrong srcthư mục con karma.conf.jsđược đặt ở đâu thì tôi gặp lỗi[karma-server]: Server start failed on port 9876: Error: The '@angular-devkit/build-angular/plugins/karma' karma plugin is meant to be used from within Angular CLI and will not work correctly outside of it.
BaltoStar 12/09/19

7

Trong trường hợp của tôi, tôi phải đổi tên tệp thành karma.conf.js sau đó khởi động nghiệp


6

Tôi gặp sự cố với karma.conf.jsđịnh dạng mã tệp:

files: [
    // Modules
    ,"client/bower_components/angular/angular.min.js"
    ,"client/bower_components/angular-mocks/angular-mocks.js"
    // App
    ,"client/app/app.module.js"
    // Test
    // ,"test/**/*.spec.js"
],

Dấu phẩy thừa trong filesmảng đã gây ra lỗi này:

You need to include some adapter that implements __karma__.start method!

6

Tôi đã không chạy lệnh bắt đầu karma từ đường dẫn mà karma.conf.js của tôi ở đó. Tôi chuyển sang thư mục đó và chạy lệnh tương tự. Đó là tất cả


4

Tôi đã gặp phải vấn đề này khi chạy thông số kỹ thuật trên cơ sở mã Angular.js. Tôi đã phải chạy npm install karma-jasmine -gđể làm cho nó hoạt động.


3

Nếu bạn gõ "karma start", bạn phải có tệp karma.conf.js trong thư mục hiện tại. hoặc chỉ là "karma start /path/karma.conf.js"

Cố gắng tạo một karmar.conf.js mới bằng "karma init /path/karma.conf.js"


2

Trong trường hợp của tôi, tôi đã áp dụng nhầm bộ tiền xử lý commonjs cho các karma-*mô-đun và adapter.jstừ karma-chromekarma-firefox đã bị hỏng theo cách này.

Thật không may, đây là một lỗi rất chung chung.


Bạn có thể cung cấp thêm thông tin cơ bản về bản sửa lỗi bạn đã làm không? Điều này có thể khiến tôi hiểu ngay bây giờ vì tôi biết tôi đang sử dụng karma-chrome. Cảm ơn!
daniel.caspers

Bạn có áp dụng bộ tiền xử lý commonjs không (nó được định cấu hình trong bộ chạy karma)? Nếu có, hãy đảm bảo rằng nó không được áp dụng cho các tệp trong mô-đun karma- *.
Adrian Ber

2

Tôi gặp lỗi tương tự vì dự án đang sử dụng Babel 6 và tôi đã quên thêm tệp babelrc. Chỉ chia sẻ trong trường hợp này có thể giúp ích.


2

Trong trường hợp của tôi, thông báo trên thực tế rất mô tả: Tôi đã quên thêm bộ điều hợp, trong trường hợp của tôi là Jasmine, vào tệp cấu hình. Như vậy:

module.exports = function(config) {
  config.set({
      browsers: ['Chrome'],
      singleRun: true,
      frameworks: ['jasmine'],
      files: [
          // ... files ...
      ],
      // other configs
    });
};

2

Bạn cần định cấu hình tệp "my.conf.js" của mình, vì tệp này chứa tất cả thông tin cần sử dụng để kiểm tra mã của bạn.

Tất cả những gì bạn cần viết là:

Tệp cấu hình có thể được tạo bằng cách sử dụng karma init:

$ karma init my.conf.js

Bạn muốn sử dụng khung thử nghiệm nào? Nhấn tab để liệt kê các tùy chọn có thể. Enter để chuyển sang câu hỏi tiếp theo.

hoa nhài

Bạn có muốn sử dụng Request.js không? Điều này sẽ thêm plugin Requi.js. Nhấn tab để liệt kê các tùy chọn có thể. Enter để chuyển sang câu hỏi tiếp theo.

Không

Bạn có muốn chụp trình duyệt tự động không? Nhấn tab để liệt kê các tùy chọn có thể. Nhập chuỗi trống để chuyển sang câu hỏi tiếp theo.

Trình duyệt Chrome

Vị trí của tệp nguồn và tệp thử nghiệm của bạn là gì? Bạn có thể sử dụng các mẫu hình cầu, ví dụ. "js / *. js" hoặc "test / ** / * Spec.js". Nhấn Enter để chuyển sang câu hỏi tiếp theo.

* .js kiểm tra / ** / *. js

Có nên loại trừ bất kỳ tệp nào trong các mẫu trước đó không? Bạn có thể sử dụng các mẫu hình cầu, ví dụ. "** / *. swp".

Nhấn Enter để chuyển sang câu hỏi tiếp theo.

Bạn có muốn Karma xem tất cả các tệp và chạy các bài kiểm tra về sự thay đổi không? Nhấn tab để liệt kê các tùy chọn có thể.

Đúng

Tệp cấu hình được tạo tại "/Users/vojta/Code/karma/my.conf.js".


1

Tôi phải nói thêm rằng trong trường hợp của tôi, karma đã cho tôi lỗi vì tôi có dấu ngoặc vuông [vuông] trong tên của một trong các thư mục mẹ.


1

Vấn đề tương tự cũng xảy ra với tôi và đó là do một mô-đun đã lỗi thời.

Chạy đã npm updategiải quyết nó.


1

Tt phàn nàn về bộ chuyển đổi có lẽ là hoa nhài hoặc mocha. Bộ điều hợp bị thiếu hoặc không được thiết lập đúng cách hoặc đó là phiên bản lỗi thời hoặc lỗi của bộ điều hợp.

Trong trường hợp của tôi, tôi có một phiên bản mocha 2.5.3 cũ không tương thích với karma 1+. Tôi đã cập nhật phần phụ thuộc mocha lên phiên bản 3.2.0 mới nhất và sự cố đã được giải quyết.


1

Trong khi làm việc với nhiều lỗi được mô tả mơ hồ, tôi đã thử đặt basePath: '../', Sau khi sửa các lỗi khác (như thiếu dấu phẩy được mô tả là lỗi nội dung đối tượng), thay đổi cuối cùng trở lại basePath: '', đã có tác dụng. những câu báo lỗi của nghiệp cần rất nhiều việc. Nó không phải là đơn giản để làm cho nó đi.


1

Tôi gặp vấn đề tương tự. Trình duyệt của tôi sẽ mở nhưng trên thiết bị đầu cuối của tôi, nó đã xuất hiện lỗi sau

30 08 2017 11:19:28.272:INFO [Chrome 58.0.3029 (Linux 0.0.0)]: Connected `enter code here`on socket 5sSs6E5KmpUVRp6LAAAB with id 93886631
Chrome 58.0.3029 (Linux 0.0.0) ERRORSome of your tests did a full page reload!

Tôi đã kiểm tra tệp karma.conf.js của mình. Trong mảng khuôn khổ, tôi đã bao gồm hoa nhài và yêu cầu. Nhưng tôi chỉ cài đặt karma-jasmine. Xóa yêu cầuJS và chạy lại nghiệp bắt đầu hoạt động!


1

Bạn sẽ phải chỉ định thư mục của karma.config.js khi bạn chạy start karma.

Thử

karma start karma.config.js


1

Tôi có cấu hình 'tệp' không tốt trong karma.conf.js của mình

files: ['**/*.js'],

điều này bắt tất cả các tệp trong node_modules / bao gồm cả những tệp của plugin karma-jasmine, vì nó được coi là tệp chua nó không được tải khi khởi động. Thay đổi thành

files: [
        'src/*.js',
        'spec/*.js'
    ],

đã giải quyết vấn đề trong trường hợp của tôi


0

FWIW - tìm nguồn cung cấp đường dẫn tệp karma.conf.jsđã làm việc cho tôi cục bộ, nhưng không phải trên trình tạo jenkins của tôi. Tôi không có manh mối nào tại sao lại như vậy, nhưng trên jenkins, nó đã đưa ra lỗi này trừ khikarma.conf.js tệp nằm trong thư mục gốc nơi lệnh karma được đưa ra. Tôi đang sử dụng đường ray và chạy các thông số kỹ thuật js thông qua một nhiệm vụ cào. Mã dưới đây có thể hữu ích cho một số người.

https://gist.github.com/daino3/a39486ff8bfc1668e923


0

Vấn đề trong trường hợp của tôi là nghiệp chướng không chọn bất kỳ tệp nào. Sửa nó trong karma.conf.js đã giải quyết được vấn đề.


0

Trong trường hợp của tôi, nó hoàn toàn không liên quan đến nghiệp! Tôi chạy karma từ gulp, với ES6 / babel và thực sự đã xảy ra lỗi cú pháp mã, được gắn cờ bởi lỗi babel phía trên karma của tôi:

LỖI [preprocessor.babel]: xxx.js: Mã thông báo không mong muốn (19:83)

Tôi đã sửa điều đó trong src của mình và nghiệp đã vui trở lại.


0

Tôi cũng đang đấu tranh với điều này. Điều tôi nghĩ ra là lỗi này xảy ra vì một trong những lý do sau

Vấn đề của tôi là tệp cấu hình của tôi được đặt tên karma.config.jsthay vìkarma.conf.js .

Nếu bạn đã cài đặt bộ điều hợp thử nghiệm nhưng nó vẫn không hoạt động, hãy thử chạy karma initvà thực hiện thiết lập cấu hình được hướng dẫn.


0

Trong trường hợp của tôi, tên tệp cấu hình khác nhau . Vì vậy, chạy lệnh chỉ định tệp conf đã giải quyết được vấn đề của tôi.

>> karma start unit-tests.conf.js
No captured browser, open http://localhost:9876/
...

Và đối với 'PhantomJS', việc mở liên kết được chỉ định ( localhost: 9876 ) trong trình duyệt sẽ thực hiện các trường hợp thử nghiệm.

Hy vọng nó giúp. :)

CHỈNH SỬA 1: Tệp cấu hình Karma của tôi

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

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


    // frameworks to use
    // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
    frameworks: ['jasmine'],


    // list of files / patterns to load in the browser
    files: [
      './node_modules/angular/angular.js',
      './node_modules/angular-ui-router/release/angular-ui-router.js',
      './node_modules/angular-mocks/angular-mocks.js',
      './app/services/users/users.js',
      './app/app.js',
      './app/services/users/users.spec.js'
    ],


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


    // preprocess matching files before serving them to the browser
    // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
    preprocessors: {
    },


    // test results reporter to use
    // possible values: 'dots', 'progress'
    // 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: ['Chrome'],


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

    // Concurrency level
    // how many browser should be started simultaneous
    concurrency: Infinity
  })
}

0

Tôi nhận được lỗi này vì tôi đã yêu cầu cùng một phụ thuộc hai lần!

Loại bỏ phụ thuộc tệp trùng lặp đã loại bỏ lỗi cho tôi. Khoanh màu xanh lam bên dưới.

nhập mô tả hình ảnh ở đây


0

Bạn phải chỉ định tệp cấu hình karma cho karma.

karma start karma.config.js 

Nó phù hợp với tôi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.