Tidak ada penyedia untuk "framework: jasmine"! (Penyelesaian: kerangka: melati)

98

Ketika saya menjalankan perintah, gruntsaya mendapatkan peringatan berikut:

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

Adakah yang tahu bagaimana mengatasi masalah ini?

Thalatta
sumber

Jawaban:

181

Saya mengalami kesalahan yang sama setelah membuat proyek baru generator sudut yeoman (yo angular).

Solusi untuk saya adalah menambahkan "karma-jasmine" ke devDependencies di packages.json dan menjalankan "npm install" lagi.

npm install karma-jasmine --save-dev

Ini memecahkan pesan kesalahan "Tidak ada penyedia untuk" framework: jasmine "!"

Saya juga harus menambahkan peluncur peramban karma ke devDependencies, karena saya mendapat pesan bahwa tidak ada peluncur yang dipasang (lihat http://karma-runner.github.io/0.10/config/browsers.html ).

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

Package.json saya terlihat seperti ini setelah tindakan saya:

{
  "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"
  }
}

Saya mengubah baris berikut di karma.conf en karma-e2e.conf untuk menggunakan karma-safari-launcher:

browsers: ['Safari'],

Saya harap ini juga akan berhasil untuk Anda.

Taco
sumber
2
Terima kasih! Satu-satunya hal yang saya lakukan berbeda adalah saya menggunakan kromnpm install karma-chrome-launcher --save-dev
Luciano
1
@KyleHayes Berikut adalah laporan bug dalam proyek generator-angular: github.com/yeoman/generator-angular/issues/629
cjerdonek
1
Saya mendapatkan Error: No provider for "framework:karma-chrome-launcher"!setelah ini
David
1
Jika Anda memiliki plugin: [...] yang ditambahkan ke karma.config.js, maka memasang karma-jasmine tidak akan menyelesaikan masalah. Anda harus menambahkan 'karma-jasmine' ke array plugin seperti plugin: ['karma-jasmine'].
Thaadikkaaran
Sesuai pemahaman saya "npm install karma-jasmine --save-dev" tidak berpengaruh pada package.json. Terima kasih atas solusi ini.
Andy
37

Seperti @Taco mengatakan, solusi default untuk masalah ini adalah menginstal plugin yang tepat, seperti ini: npm install karma-jasmine --save-devatau ini: npm install karma-mocha --save-dev.

Namun, kesalahan ini juga terjadi saat Anda menjalankan versi lama karma-clikarena versi tersebut memperbarui cara karma memuat plugin. Untuk memastikan Anda memiliki versi terbaru, jalankan ini:

npm install -g karma-cli
André Pena
sumber
1
Ini memperbaikinya untuk saya. Saya memiliki ketergantungan yang disebutkan sebelumnya, tetapi karma-cli sudah ketinggalan zaman, tampaknya.
icfantv
1
Ini memperbaiki masalah saya. Terima kasih sobat
Syaikh
1
Aku juga mengalami ini. Terbukti, npm install -g karmaadalah tidak sama dengan npm install -g karma-cli.
Peter Majeed
@PeterMajeed Setelah menginstal Jasmine, saya pikir mungkin saya bisa npm install -g karmatetapi ini TIDAK berhasil. Anda harus menggunakannpm install -g karma-cli
Coburn
34

Masalah saya ada di karma.config.jsfile saya :

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

Hal ini menyebabkan karma-*plugin lain tidak dapat dimuat, termasuk karma-jasmine.

aleclarson.dll
sumber
1
aleclarson's juga masalah saya. Karena karma-webpacksudah berada di saya package.json's devDependencies, saya komentar ini pluginsmasuk dalam saya karma.config.jsberkas.
dave_k_smith
31

Jika Anda karma.conf.jsmenentukan pluginsatribut, pastikan untuk menambahkan karma-jasmineke daftar. Jika semua plugin diawali dengan karma-, Anda tidak perlu menentukan atribut ini karena plugin akan dimuat secara otomatis.

hughes
sumber
6
Terima kasih, ini menyelesaikan masalah saya, menambahkan karma-melati ke plugin!
sandip
Terima kasih ini berhasil - ini adalah baris lengkapnya. plugins: ['karma-jasmine', 'karma-chrome-launcher', 'karma-spec-reporter', 'karma-coverage'],
Sam Deering
6

Itu terjadi pada saya karena saya telah menginstal Karma secara global, dan ketika saya menjalankan perintah karma start, itu sebenarnya berjalan di / usr / ... daripada direktori dev saya.

Dalam kasus saya, solusinya adalah menghapus karma dan menginstal karma-cli sebagai gantinya.

npm remove -g karma
npm install -g karma-cli
Segev -CJ- Shmueli
sumber
2

Masalah saya adalah memilih "paket Karma" dalam konfigurasi run IntelliJ. Saya tidak memilih paket karma proyek di folder "node_module" proyek: masukkan deskripsi gambar di sini

Rooky
sumber
Inilah yang sebenarnya (hilang) saya cari.
vivekmore