エラー:__karma __。startメソッドを実装するアダプタを含める必要があります


91

プロジェクトの1つにいくつかの単体テストを追加しようとしています。

これまでのところ、カルマをインストールして構成し、ジャスミンをインストールしました。test/フォルダーにテストファイルが1つあります。

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は私にとってトリックをしました。正しいディレクトリは異なる場合があります。
Jason

3
プリプロセッサを追加するときにこのエラーが発生しました:{'src / ** / *。js':['babel']}、アイデアはありますか?
SuperUberDuper 2016年

5
私はこのエラーtest/**/*.{js,jsx}test/**/*.+(js|jsx)修正するように変更しました。なんて奇妙なことでしょう。
ジュニパー

1
また、カルマ設定にタイプミスがあると、このようなエラーが発生する可能性があります
sergolius

28

karma構成ファイルに名前を付けると、karma.conf.js単純に入力できますkarma start

それ以外の場合はファイル名を指定します karma start karmafile.js

(私は正しいディレクトリにいましたが、ファイル名を指定していませんでした。)


13

karma runkarma-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.conf.jsがあるパスからkarma startコマンドを実行していませんでした。そのフォルダーに切り替えて、同じコマンドを実行しました。それで全部です


4

Angular.jsコードベースでスペックを実行しているときにこの問題に直面していました。私はnpm install karma-jasmine -gこれを機能させるために走らなければなりませんでした。


3

「karma start」と入力した場合は、現在のフォルダーにkarma.conf.jsファイルが必要です。または単に「karma start /path/karma.conf.js」

「karma init /path/karma.conf.js」で新しいkarmar.conf.jsを作成してみてください


2

私の場合、誤ってcommonjsプリプロセッサをkarma-*モジュールに適用し、adapter.jsfrom karma-chromeとfromkarma-firefox、このように壊れていました。

残念ながら、これは非常に一般的なエラーです。


あなたがした修正の背景をもっと教えてもらえますか?私はカルマクロムを使用していることを知っているので、これは今私を動かしているかもしれません。ありがとう!
daniel.caspers

commonjsプリプロセッサを適用していますか(カルマランナーで構成されていますか)?はいの場合は、それがkarma- *モジュールのファイルに適用されていないことを確認してください。
Adrian Ber

2

プロジェクトがBabel 6を使用していて、babelrcファイルを追加するのを忘れていたため、同じエラーが発生していました。これが役立つ場合に備えて、共有するだけです。


2

私の場合、メッセージは実際には非常に説明的でした:アダプター(私の場合はJasmine)を構成ファイルに追加するのを忘れていました。したがって:

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

どのテストフレームワークを使用しますか?タブを押して、可能なオプションをリストします。Enterキーを押して次の質問に移動します。

ジャスミン

Require.jsを使用しますか?これにより、Require.jsプラグインが追加されます。可能なオプションをリストするには、タブを押してください。Enterキーを押して次の質問に移動します。

番号

ブラウザを自動的にキャプチャしますか?可能なオプションをリストするには、タブを押してください。空の文字列を入力して、次の質問に移動します。

クロム

ソースファイルとテストファイルの場所はどこですか?たとえば、グロブパターンを使用できます。「js / *。js」または「test / ** / * Spec.js」。Enterキーを押して次の質問に移動します。

* .jsテスト/**/*.js

以前のパターンに含まれていたファイルを除外する必要がありますか?たとえば、グロブパターンを使用できます。「** / *。swp」。

Enterキーを押して、次の質問に移動します。

Karmaにすべてのファイルを監視させ、変更時にテストを実行させますか?可能なオプションをリストするには、タブを押してください。

はい

「/Users/vojta/Code/karma/my.conf.js」に生成された設定ファイル。


1

私の場合、親フォルダーの1つの名前に[角かっこ]角かっこがあったので、カルマがエラーを出していたことを付け加えなければなりません。


1

同じ問題が私にも起こりましたが、それは古いモジュールが原因でした。

実行するとnpm update解決しました。


1

Ttはおそらくジャスミンかモカであるアダプターについて不平を言っています。アダプターが欠落しているか、正しくセットアップされていないか、アダプターのバージョンが古いかバグがあるかのいずれかです。

私の場合、karma 1+と互換性のない古いバージョンのmocha 2.5.3がありました。 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ファイルを確認しました。フレームワーク配列には、jasmineとrequirejsが含まれていました。しかし、私はkarma-jasmineしかインストールしていませんでした。requireJSを削除して、karma startを再実行するとうまくいきました!



1

私のkarma.conf.jsに不適切な「ファイル」設定がありました

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

これは、karma-jasmineプラグインのファイルを含め、node_modules /内のすべてのファイルに追いつきました。起動時にロードされなかったサワーファイルと見なされたためです。に変更

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

私の場合の問題を解決しました


0

karma.conf.jsFWIW-ローカルで作業したファイルパスを調達しましたが、jenkinsビルダーでは使用していません。理由がわからないのkarma.conf.jsですが、jenkinsでは、karmaコマンドが指定されたルートディレクトリにファイルが存在しない限り、このエラーがスローされていました。私はレールを使用して、rakeタスクでjs仕様を実行しています。一部の人に役立つかもしれないコードが下にあります。

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



0

私の場合、それはカルマとは全く関係がありませんでした!ES6 / babelを使用してgulpからカルマを実行しましたが、実際には、カルマの上のバベルエラーによってフラグが付けられたコード構文エラーが発生しました。

エラー[preprocessor.babel]:xxx.js:予期しないトークン(19:83)

私はsrcでそれを修正し、カルマは再び幸せでした。


0

私もこれに苦労しています。私が思いついたのは、このエラーが次のいずれかの理由で発生したということです

私の問題は、私の設定ファイルの名前karma.config.jskarma.conf.js

テストアダプターをインストールしたが、それでも機能しない場合は、実行karma initしてガイド付き設定を試してください。


0

私の場合、構成ファイル名が異なっていました。したがって、confファイルを指定してコマンドを実行すると、問題が解決しました。

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

そして、「PhantomJS」の場合、ブラウザーで指定されたリンク(localhost:9876)を開くと、テストケースが実行されます。

それが役に立てば幸い。:)

編集1:私のKarma設定ファイル

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

同じ依存関係を2回必要としたため、このエラーが発生しました。

重複するファイルの依存関係を削除すると、エラーがなくなりました。下の青色で囲まれています。

ここに画像の説明を入力してください


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.