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?

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.


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

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.


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.


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

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


Inilah yang sebenarnya (hilang) saya cari.
vivekmore
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.