「framework:jasmine」のプロバイダーはありません!(解決:フレームワーク:ジャスミン)


98

コマンドを実行するgruntと、次の警告が表示されます。

Running "karma:unit" (karma) task
Warning: No provider for "framework:jasmine"! (Resolving: framework:jasmine) Use --force to continue.

誰かがこの問題を解決する方法を知っていますか?

回答:


181

ヨーマン角度ジェネレーター(yo angular)の新しいプロジェクトを作成した後も、同じエラーが発生しました。

私の解決策は、packages.jsonのdevDependenciesに「karma-jasmine」を追加し、「npm install」を再度実行することでした。

npm install karma-jasmine --save-dev

これにより、「「framework:jasmine」のプロバイダーがありません!」というエラーメッセージが解決されました。

ランチャーがインストールされていないというメッセージが表示されたため、karmaブラウザーランチャーをdevDependenciesに追加する必要もありました(http://karma-runner.github.io/0.10/config/browsers.htmlを参照)。

npm install karma-safari-launcher --save-dev

私のpackages.jsonは私のアクションの後、このようになりました:

{
  "name": "test1",
  "version": "0.0.0",
  "dependencies": {},
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-autoprefixer": "~0.4.0",
    "grunt-bower-install": "~0.7.0",
    "grunt-concurrent": "~0.4.1",
    "grunt-contrib-clean": "~0.5.0",
    "grunt-contrib-coffee": "~0.7.0",
    "grunt-contrib-compass": "~0.6.0",
    "grunt-contrib-concat": "~0.3.0",
    "grunt-contrib-connect": "~0.5.0",
    "grunt-contrib-copy": "~0.4.1",
    "grunt-contrib-cssmin": "~0.7.0",
    "grunt-contrib-htmlmin": "~0.1.3",
    "grunt-contrib-imagemin": "~0.3.0",
    "grunt-contrib-jshint": "~0.7.1",
    "grunt-contrib-uglify": "~0.2.0",
    "grunt-contrib-watch": "~0.5.2",
    "grunt-google-cdn": "~0.2.0",
    "grunt-newer": "~0.5.4",
    "grunt-ngmin": "~0.0.2",
    "grunt-rev": "~0.1.0",
    "grunt-svgmin": "~0.2.0",
    "grunt-usemin": "~2.0.0",
    "jshint-stylish": "~0.1.3",
    "load-grunt-tasks": "~0.2.0",
    "time-grunt": "~0.2.1",
    "karma-ng-scenario": "^0.1.0",
    "grunt-karma": "^0.8.0",
    "karma": "^0.12.0",
    "karma-jasmine": "~0.2.2",
    "karma-safari-launcher": "~0.1.1",
    "karma-ng-html2js-preprocessor": "^0.1.0"
  },
  "engines": {
    "node": ">=0.8.0"
  },
  "scripts": {
    "test": "grunt test"
  }
}

karma-safari-launcherを使用するように、karma.conf en karma-e2e.confの次の行を変更しました。

browsers: ['Safari'],

これがあなたにも役立つことを願っています。


2
ありがとう!私が唯一異なるのは、クロムを使用したことですnpm install karma-chrome-launcher --save-dev
Luciano

1
@KyleHayesこれは、generator-angularプロジェクトのバグレポートです。github.com
yeoman

1
私はError: No provider for "framework:karma-chrome-launcher"!この後を得た
デビッド

1
プラグインがある場合:[...]がkarma.config.jsに追加されている場合、karma-jasmineをインストールしても問題は解決しません。プラグインのようなプラグイン配列に「karma-jasmine」を追加する必要があります:['karma-jasmine']。
Thaadikkaaran 2016年

私の理解によると、「npm install karma-jasmine --save-dev」はpackage.jsonに影響を与えませんでした。この解決策をありがとう。
アンディ

37

:@Tacoが言ったように、この問題のデフォルトのソリューションは、このような適切なプラグイン、インストールされたnpm install karma-jasmine --save-devか、これを:npm install karma-mocha --save-dev

ただし、の古いバージョンを実行している場合にもkarma-cli、カルマがプラグインをロードする方法を更新したため、このエラーが予想されます。最新バージョンであることを確認するには、次のコマンドを実行します。

npm install -g karma-cli

1
これで解決しました。前述の依存関係はありましたが、karma-cliは古くなっているようです。
icfantv 2015

1
これで問題が解決しました。ありがとうバディ
シェイク

1
私もこれに遭遇しました。明らかに、npm install -g karmaと同じではありませんnpm install -g karma-cli
Peter Majeed、2016

@PeterMajeedジャスミンをインストールした後、多分できると思ったがnpm install -g karma、これは機能しない。使用する必要がありますnpm install -g karma-cli
コバーン

34

私の問題は私のkarma.config.jsファイルにありました:

plugins: [require("karma-webpack")]

これによりkarma-*、を含む他のプラグインが読み込まれなくなりましたkarma-jasmine


1
aleclarsonも私の問題でした。以来karma-webpack、私の中ですでにだったpackage.jsondevDependenciesは、私はこのコメントアウトplugins私のエントリkarma.config.jsファイルを。
dave_k_smith 2016年

31

で属性をkarma.conf.js指定する場合は、plugins必ずkarma-jasmineリストに追加してください。すべてのプラグインの接頭辞がの場合、プラグインはkarma-自動的にロードされるため、この属性を指定する必要はありません。


6
おかげで、これで私の問題が解決し、プラグインにkarma-jasmineが追加されました!
sandip

これがうまくいったおかげで-これは完全なラインです。 plugins: ['karma-jasmine', 'karma-chrome-launcher', 'karma-spec-reporter', 'karma-coverage'],
Sam Deering 2017年

6

Karmaをグローバルにインストールしていて、karma startコマンドを実行すると、実際にはdevディレクトリーではなく/ usr / ...で実行されたため、このようなことが起こりました。

私の場合、解決策はkarmaを削除して、代わりにkarma-cliをインストールすることでした。

npm remove -g karma
npm install -g karma-cli

2

私の問題は、IntelliJ実行構成で選択された「Karmaパッケージ」でした。プロジェクトの「node_module」フォルダーでプロジェクトのカルマパッケージを選択しませんでした。 ここに画像の説明を入力してください


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