Jawaban:
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.
Error: No provider for "framework:karma-chrome-launcher"!
setelah ini
Seperti @Taco mengatakan, solusi default untuk masalah ini adalah menginstal plugin yang tepat, seperti ini: npm install karma-jasmine --save-dev
atau ini: npm install karma-mocha --save-dev
.
Namun, kesalahan ini juga terjadi saat Anda menjalankan versi lama karma-cli
karena versi tersebut memperbarui cara karma memuat plugin. Untuk memastikan Anda memiliki versi terbaru, jalankan ini:
npm install -g karma-cli
npm install -g karma
adalah tidak sama dengan npm install -g karma-cli
.
npm install -g karma
tetapi ini TIDAK berhasil. Anda harus menggunakannpm install -g karma-cli
Masalah saya ada di karma.config.js
file saya :
plugins: [require("karma-webpack")]
Hal ini menyebabkan karma-*
plugin lain tidak dapat dimuat, termasuk karma-jasmine
.
karma-webpack
sudah berada di saya package.json
's devDependencies
, saya komentar ini plugins
masuk dalam saya karma.config.js
berkas.
Jika Anda karma.conf.js
menentukan plugins
atribut, pastikan untuk menambahkan karma-jasmine
ke daftar. Jika semua plugin diawali dengan karma-
, Anda tidak perlu menentukan atribut ini karena plugin akan dimuat secara otomatis.
plugins: ['karma-jasmine', 'karma-chrome-launcher', 'karma-spec-reporter', 'karma-coverage'],
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
npm install karma-chrome-launcher --save-dev