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.