Помилка: Вам потрібно включити якийсь адаптер, що реалізує метод __karma __. Start


91

Я намагаюся додати кілька модульних тестів до одного зі своїх проектів.

Наразі я встановив і налаштував карму і встановив жасмин. У мене в test/папці один тестовий файл .

Сервер Karma запустився, сторінка браузера готова, але karma run не працює наступним чином:

$ 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!

Це повідомлення про помилку не працює в Google.

Це щось очевидне, чи мені потрібно надати більше інформації?


2
Хотів зазначити, що я отримував цю помилку через помилки синтаксису препроцесора, яких я спочатку не помічав.
BradGreens

Відповіді:


73

Здається, це дуже загальна помилка, однак у моєму випадку проблема полягала або в тому, що я не запустив karma startправильну папку, або в тому, що я не перезапустив її після зміни конфігурації.

Я залишаю це питання відкритим, і, сподіваюся, воно може стати джерелом для інших, хто відчуває це повідомлення про помилку.


26
Те саме для мене - біг karma start test/karma.conf.jsзробив для мене фокус. Правильний каталог може відрізнятися для вас.
Джейсон

3
Я отримав цю помилку під час додавання препроцесорів: {'src / ** / *. Js': ['babel']}, є ідеї?
SuperUberDuper

5
Для мене перехід test/**/*.{js,jsx}на test/**/*.+(js|jsx)виправлену цю помилку. Як дивно!
ялівець

1
Також така помилка може з'явитися, якщо конфігурація карми має
друковану

28

Якщо ви назвали свій файл конфігурації karma karma.conf.js, ви можете просто ввести karma start.

В іншому випадку вкажіть ім'я файлу karma start karmafile.js

(Я знаходився в потрібному каталозі, але не вказував назву файлу.)


13

Вам потрібно запустити свою karma runабо будь-яку іншу функцію в папці, де знаходиться karma-conf.js.


Здається, це не правильно. Якщо я запускаю karma startв srcпідпапці, де karma.conf.jsзнаходиться, я отримую помилку[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


6

У мене виникла проблема з karma.conf.jsформатом коду файлу:

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"
],

Додаткові коми в filesмасиві спричиняють цю помилку:

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

6

Я не запускав команду karma start із шляху, де знаходився мій karma.conf.js. Я перейшов у цю папку і виконав ту саму команду. Це все


4

Я зіткнувся з цією проблемою під час запуску специфікацій на кодовій базі Angular.js. Мені довелося бігти, npm install karma-jasmine -gщоб це працювало.


3

Якщо ви вводите "karma start", у поточній папці повинен бути файл karma.conf.js. або просто "karma start /path/karma.conf.js"

Спробуйте створити новий karmar.conf.js за допомогою "karma init /path/karma.conf.js"


2

У моєму випадку я помилково застосував препроцесор commonjs до karma-*модулів та adapter.jsвід karma-chromeі karma-firefoxбув зламаний таким чином.

На жаль, це дуже загальна помилка.


Не могли б ви надати більше довідки щодо виправлення, яке ви зробили? Можливо, це змушує мене прямо зараз, оскільки я знаю, що використовую карма-хром. Дякую!
daniel.caspers

Чи застосовуєте ви препроцесор commonjs (чи він налаштований у програмі karma runner)? Якщо так, переконайтесь, що це не застосовано до файлів у модулях karma- *.
Адріан Бер,

2

Я отримував ту ж помилку, оскільки в проекті використовувався Babel 6, і я забув додати файл babelrc. Просто поділившись на випадок, якщо це може допомогти.


2

У моєму випадку повідомлення насправді було дуже описовим: я забув додати адаптер, у моєму випадку Жасмин, у файл конфігурації. Отже:

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

2

Вам потрібно налаштувати файл "my.conf.js", оскільки він містить всю інформацію для тестування коду.

Все, що вам потрібно написати, це:

Файл конфігурації можна створити за допомогою karma init:

$ karma init my.conf.js

Яку структуру тестування ви хочете використовувати? Натисніть вкладку, щоб перелічити можливі варіанти. Введіть, щоб перейти до наступного питання.

жасмин

Ви хочете використовувати Require.js? Це додасть плагін Require.js. Натисніть вкладку, щоб перелічити можливі варіанти. Введіть, щоб перейти до наступного питання.

немає

Ви хочете автоматично захопити браузер? Натисніть вкладку, щоб перелічити можливі варіанти. Введіть порожній рядок, щоб перейти до наступного питання.

Chrome

У якому місці знаходяться ваші вихідні та тестові файли? Ви можете використовувати шаблони глобусів, наприклад. "js / *. js" або "test / ** / * Spec.js". Натисніть Enter, щоб перейти до наступного питання.

* .js тест / ** / *. js

Чи повинен бути виключений будь-який із файлів, включених до попередніх зразків? Ви можете використовувати шаблони глобусів, наприклад. "** / *. swp".

Натисніть Enter, щоб перейти до наступного питання.

Ви хочете, щоб Karma переглядала всі файли та запускала тести на зміну? Натисніть вкладку, щоб перелічити можливі варіанти.

так

Конфігураційний файл, згенерований за адресою "/Users/vojta/Code/karma/my.conf.js".


1

Потрібно додати, що в моєму випадку карма видавала мені помилку, оскільки я мав [квадратні] дужки в назві однієї з батьківських папок.


1

Та сама проблема трапилася і зі мною, і це сталося через застарілий модуль.

Біг npm updateце вирішив.


1

Тт скаржиться на адаптер, який, ймовірно, є жасмином або моккою. Або адаптер відсутній, або неправильно налаштовано, або це застаріла версія або помилка версії адаптера.

У моєму випадку у мене була стара версія mocha 2.5.3, яка не була сумісна з кармою 1+. Я оновив залежність mocha до останньої версії, доступної 3.2.0, і проблема вирішена.


1

Працюючи над численними неясно описаними помилками, я спробував встановити basePath: '../', після виправлення інших помилок (наприклад, відсутніх коми, які були описані як помилки вмісту об'єкта) остання зміна повернулася до basePath: '', карма запрацювала. Заяви про помилки карми потребують багато роботи. Зробити це непросто.


1

У мене була та сама проблема. Мій браузер відкривався, але на моєму терміналі він видав таку помилку

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!

Я перевірив свій файл karma.conf.js. У фреймворковий масив я включив жасмин і requirejs. Але я встановив лише карма-жасмин. Видалення requireJS та повторне запуску карми спрацювали!



1

У мене була погана конфігурація "файлів" у моєму karma.conf.js

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

це захопило всі файли в node_modules / включаючи файли плагіна karma-jasmine, оскільки це розглядалося як файли sourde, які не завантажувались під час запуску. Зміна на

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

вирішив проблему в моєму випадку


0

FWIW - пошук шляху до файлу karma.conf.jsпрацював у мене локально, але не на моєму конструкторі jenkins. Я не маю уявлення, чому це так, але на jenkins він викидав цю помилку, якщо неkarma.conf.js файл не знаходився в кореневому каталозі, де була дана команда karma. Я використовую рейки та запускаю специфікації js через завдання rake. Код нижче, що може бути корисним для деяких.

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


0

Проблема в моєму випадку полягала в тому, що Карма не забрала жодних файлів. Виправлення цього у karma.conf.js вирішило проблему.


0

У моєму випадку це взагалі не було пов’язано з кармою! Я запускаю карму з глотки за допомогою ES6 / babel, і насправді сталася помилка синтаксису коду, позначена помилкою babel над моєю кармою:

ПОМИЛКА [препроцесор.babel]: xxx.js: Несподіваний маркер (19:83)

Я зафіксував, що в моїй src і карма знову була щасливою.


0

Я теж боровся з цим. Я придумав, що ця помилка виникає через одну з наступних причин

Моя проблема полягала в тому, що мій конфігураційний файл був названий karma.config.jsзамість karma.conf.js.

Якщо ви встановили тестовий адаптер, але він все ще не працює, спробуйте запустити karma initі пройдіть налаштування конфігурації.


0

У моєму випадку ім'я файлу конфігурації було іншим . Отже, запуск команди із зазначенням файлу conf вирішив мою проблему.

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

А для 'PhantomJS' відкриття вказаного посилання ( localhost: 9876 ) у браузері виконує тестові випадки.

Сподіваюся, це допоможе. :)

EDIT 1: My Karma Config File

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

Я отримав цю помилку, тому що мені двічі потрібна одна і та ж залежність!

Видалення залежності від дубліката файлу видалило помилку для мене. Внизу обведено синім кольором.

введіть тут опис зображення


0

Ви повинні вказати файл конфігурації karma karma для karma.

karma start karma.config.js 

Це працює для мене

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.