Hata: __karma __. Başlangıç ​​yöntemini uygulayan bir adaptör eklemeniz gerekiyor


91

Projelerimden birine bazı birim testleri eklemeye çalışıyorum.

Şimdiye kadar karmayı yükledim ve yapılandırdım ve yasemin kurdum. test/Klasörümde bir test dosyası var .

Karma sunucusu başladı, tarayıcı sayfası hazır, ancak karma runaşağıdaki gibi başarısız oluyor:

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

Bu hata mesajı Google'da pek iyi değil.

Bu açık bir şey mi yoksa daha fazla bilgi vermem gerekiyor mu?


2
İlk başta fark etmediğim önişlemci sözdizimi hataları nedeniyle bu hatayı aldığımı not etmek istedim.
BradGreens

Yanıtlar:


73

Bu çok genel bir hata gibi görünüyor, ancak benim durumumda sorun ya karma startdoğru klasörden çalıştırmamam ya da yapılandırmayı değiştirdikten sonra onu yeniden başlatmamamdı.

Bu soruyu açık bırakacağım ve umarım bu hata mesajını yaşayan başkaları için bir kaynak olabilir.


26
Benim için de aynı - koşmak benim karma start test/karma.conf.jsiçin hile yaptı. Doğru dizin sizin için farklı olabilir.
Jason

3
Önişlemcileri eklerken bu hatayı aldım: {'src / ** / *. Js': ['babel']}, herhangi bir fikriniz var mı?
SuperUberDuper

5
Benim test/**/*.{js,jsx}için test/**/*.+(js|jsx)bu hatayı düzeltmek için değişiyor . Ne kadar tuhaf!
ardıç

1
Ayrıca karma yapılandırmasında yazım hatası varsa böyle bir hata görünebilir
sergolius

28

Karma yapılandırma dosyanızı adlandırırsanız karma.conf.js, yazabilirsiniz karma start.

Aksi takdirde dosya adını belirtin karma start karmafile.js

(Doğru dizindeydim, ancak bir dosya adı belirtmiyordum.)


13

karma runKarma-conf.js'nin bulunduğu klasörde kendi veya herhangi bir işlevi çalıştırmanız gerekir .


Bu doğru görünmüyor. Koşarsam karma startiçinde srcalt klasöründe karma.conf.jsbulunan hatası alıyorum[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

7

Benim durumumda, dosyayı karma.conf.js olarak yeniden adlandırmam ve ardından karma başlatmam gerekti


6

karma.conf.jsDosya kodu formatıyla ilgili bir sorun yaşadım :

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

Dizideki ekstra virgül filesşu hataya neden olur:

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

6

Karma.conf.js'min bulunduğu yoldan karma başlatma komutunu çalıştırmıyordum . O klasöre geçtim ve aynı komutu çalıştırdım. Bu kadar


4

Angular.js kod tabanında spesifikasyonları çalıştırırken bu sorunla karşılaşıyordum. Bunu çalıştırmak npm install karma-jasmine -giçin koşmam gerekiyordu.


3

"Karma start" yazarsanız, mevcut klasörde bir karma.conf.js dosyanız olmalıdır. veya sadece "karma başlangıç ​​/yol/karma.conf.js"

"Karma init /path/karma.conf.js" ile yeni bir karmar.conf.js oluşturmayı deneyin


2

Benim durumumda, ben commonjs için önişlemci yanlışlıkla başvurusu yapıldı karma-*modülleri ve adapter.jsgelen karma-chromeve karma-firefoxbu şekilde kırıldı.

Maalesef bu çok genel bir hatadır.


Yaptığınız düzeltmeyle ilgili daha fazla arka plan sağlayabilir misiniz? Karma-chrome kullandığımı bildiğim için bu beni şu anda alıyor olabilir. Teşekkürler!
daniel.caspers

Commonjs ön işlemcisini uyguluyor musunuz (karma koşucusunda yapılandırılmış mı)? Evetse, karma- * modüllerindeki dosyalara uygulanmadığından emin olun.
Adrian Ber

2

Ben de aynı hatayı alıyordum çünkü proje Babel 6 kullanıyordu ve babelrc dosyasını eklemeyi unutmuştum. Bunun yardımcı olma ihtimaline karşı sadece paylaşmak.


2

Benim durumumda, mesaj aslında çok açıklayıcıydı: Yapılandırma dosyasına bir bağdaştırıcı eklemeyi unuttum, benim durumumda Jasmine. Böylece:

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

2

Kodunuzu test etmek için kullanılacak tüm bilgileri içerdiğinden "my.conf.js" dosyanızı yapılandırmanız gerekir.

Yazmanız gereken tek şey şudur:

Yapılandırma dosyası karma init kullanılarak oluşturulabilir:

$ karma init my.conf.js

Hangi test çerçevesini kullanmak istiyorsunuz? Olası seçenekleri listelemek için sekmeye basın. Sonraki soruya geçmek için girin.

yasemin

Require.js kullanmak istiyor musunuz? Bu, Require.js eklentisini ekleyecektir. Olası seçenekleri listelemek için sekmeye basın. Sonraki soruya geçmek için girin.

Hayır

Bir tarayıcıyı otomatik olarak yakalamak istiyor musunuz? Olası seçenekleri listelemek için sekmeye basın. Sonraki soruya geçmek için boş dize girin.

Krom

Kaynak ve test dosyalarınızın konumu nedir? Glob desenlerini kullanabilirsiniz, örneğin. "js / *. js" veya "test / ** / * Spec.js". Sonraki soruya geçmek için Enter tuşuna basın.

* .js testi / ** / *. js

Önceki modellerin içerdiği dosyalardan herhangi biri hariç tutulmalı mı? Glob desenlerini kullanabilirsiniz, örneğin. "** / *. swp".

Sonraki soruya geçmek için Enter tuşuna basın.

Karma'nın tüm dosyaları izlemesini ve değişiklik testleri yapmasını ister misiniz? Olası seçenekleri listelemek için sekmeye basın.

Evet

"/Users/vojta/Code/karma/my.conf.js" adresinde oluşturulan yapılandırma dosyası.


1

Benim durumumda karmanın bana hata verdiğini eklemeliyim çünkü üst klasörlerden birinin adında [köşeli] parantezler vardı.


1

Aynı sorun bana da oldu ve modası geçmiş bir modülden kaynaklanıyordu.

Koşmak npm updatesorunu çözdü.


1

Muhtemelen yasemin veya mocha olan adaptörden şikayet ediyor. Ya adaptör eksik ya da doğru kurulmamış, ya adaptörün eski ya da hatalı bir versiyonu.

Benim durumumda karma 1+ ile uyumlu olmayan eski bir mocha 2.5.3 sürümüne sahiptim. Mocha bağımlılığını mevcut en son 3.2.0 sürümüne güncelledim ve sorun çözüldü.


1

Belirsiz bir şekilde tanımlanmış çok sayıda hata üzerinde çalışırken, basePath'i ayarlamayı denedim: '../', Diğer hataları düzelttikten sonra (nesne içerik hataları olarak tanımlanan eksik virgüller gibi) basePath'e geri dönen son değişiklik: '', işe yarayacak karma aldı. karma'nın hata ifadeleri çok fazla çalışmaya ihtiyaç duyar. Devam ettirmek kolay değil.


1

Ben de aynı sorunu yaşadım. Tarayıcım açılacaktı ancak terminalimde aşağıdaki hatayı attı

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 dosyamı kontrol ettim. Çerçeve dizisine yasemin ve needj'leri dahil ettim. Ama ben sadece karma-yasemin kurmuştum. Gerektirir JS'yi kaldırmak ve karmayı yeniden çalıştırmak işe yaradı!


1

karma.config.jsBaşlangıç ​​karmasını çalıştırdığınızda dizini belirtmeniz gerekecektir .

Deneyin

karma start karma.config.js


1

Karma.conf.js dosyamda bozuk bir 'dosyalar' yapılandırması vardı

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

bu, başlangıçta yüklenmediği sourde dosyaları olarak görüldüğü için node_modules / karma-yasemin eklentisininkiler de dahil olmak üzere tüm dosyaları yakaladı. Olarak değiştiriliyor

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

benim durumumdaki sorunu çözdüm


0

FWIW - karma.conf.jsbenim için yerel olarak çalışılan dosya yolunu sağlama , ancak jenkins oluşturucumda değil. Durumun neden böyle olduğuna dair sıfır fikrim var, ancak karma.conf.jsdosya karma komutunun verildiği kök dizinde olmadığı sürece jenkins'te bu hatayı atıyordu . Rayları kullanıyorum ve js özelliklerini bir komisyon göreviyle çalıştırıyorum. Bazıları için yararlı olabilecek kod aşağıdadır.

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


0

Benim durumumdaki sorun, karmanın herhangi bir dosya almamasıydı. Karma.conf.js'de düzeltmek sorunu çözdü.


0

Benim durumumda, karma ile hiç ilgili değildi! ES6 / babel ile yudumdan karma çalıştırıyorum ve aslında karmamın üzerinde bir babel hatasıyla işaretlenen bir kod sözdizimi hatası vardı:

HATA [preprocessor.babel]: xxx.js: Beklenmeyen simge (19:83)

Bunu src'de düzelttim ve karma yeniden mutluydu.


0

Ben de bununla mücadele ediyorum. Bulduğum şey, bu hatanın aşağıdaki nedenlerden biri nedeniyle oluşmasıdır.

Benim sorun benim yapılandırma dosyası seçildi olmasıydı karma.config.jsyerinekarma.conf.js .

Test adaptörünü kurduysanız ancak hala çalışmıyorsa, çalıştırmayı deneyin karma initve kılavuzlu yapılandırma kurulumunu uygulayın.


0

Benim durumumda, yapılandırma dosyası adı farklıydı . Bu nedenle, conf dosyasını belirten komutu çalıştırmak sorunumu çözdü.

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

Ve 'PhantomJS' için, tarayıcıda belirtilen bağlantıyı ( localhost: 9876 ) açmak test durumlarını yürütür.

Umarım yardımcı olur. :)

DÜZENLEME 1: Karma Yapılandırma Dosyam

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

Bu hatayı, aynı bağımlılığı iki kez istediğim için aldım!

Yinelenen dosya bağımlılığını kaldırmak, hatayı benim için ortadan kaldırdı. Aşağıda mavi daire içine alınmış.

görüntü açıklamasını buraya girin


0

Karma yapılandırma dosyasını karma olarak belirtmelisiniz .

karma start karma.config.js 

Benim için çalışıyor

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.