Câu trả lời:
Tôi đã gặp lỗi tương tự sau khi tạo một dự án mới trình tạo góc yeoman (yo angle).
Giải pháp cho tôi là thêm "karma-jasmine" vào devDependencies trong package.json và chạy lại "npm install".
npm install karma-jasmine --save-dev
Điều này đã giải quyết được thông báo lỗi "Không có nhà cung cấp cho" framework: jasmine "!"
Tôi cũng phải thêm một trình khởi chạy trình duyệt nghiệp chướng vào devDependencies, vì tôi nhận được thông báo rằng không có trình khởi chạy nào được cài đặt (xem http://karma-runner.github.io/0.10/config/b Duyệt.html ).
npm install karma-safari-launcher --save-dev
Package.json của tôi trông như thế này sau khi thực hiện hành động của tôi:
{
"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"
}
}
Tôi đã thay đổi dòng sau trong karma.conf en karma-e2e.conf để sử dụng karma-safari-launcher:
browsers: ['Safari'],
Tôi hy vọng điều này cũng sẽ làm việc cho bạn.
Error: No provider for "framework:karma-chrome-launcher"!
theo đuổi điều này
Như @Taco nói, giải pháp mặc định cho vấn đề này được cài đặt plugin thích hợp, như thế này: npm install karma-jasmine --save-dev
hoặc đây: npm install karma-mocha --save-dev
.
Tuy nhiên, lỗi này cũng có thể xảy ra khi bạn đang chạy phiên bản cũ karma-cli
vì họ đã cập nhật cách karma tải các plugin. Để đảm bảo bạn có phiên bản mới nhất, hãy chạy:
npm install -g karma-cli
npm install -g karma
là không được điều tương tự như npm install -g karma-cli
.
npm install -g karma
nhưng điều này KHÔNG hoạt động. Bạn phải sử dụngnpm install -g karma-cli
Vấn đề của tôi là trong karma.config.js
tệp của tôi :
plugins: [require("karma-webpack")]
Điều này khiến các karma-*
plugin khác không được tải, bao gồm cả karma-jasmine
.
karma-webpack
đã có trong tôi package.json
's devDependencies
, tôi nhận xét ra này plugins
vào trong tôi karma.config.js
tập tin.
Nếu bạn karma.conf.js
chỉ định một plugins
thuộc tính, hãy chắc chắn thêm karma-jasmine
vào danh sách. Nếu tất cả các plugin đều có tiền tố karma-
, bạn không cần chỉ định thuộc tính này vì các plugin sẽ được tải tự động.
plugins: ['karma-jasmine', 'karma-chrome-launcher', 'karma-spec-reporter', 'karma-coverage'],
Điều đó xảy ra với tôi bởi vì tôi đã cài đặt Karma trên toàn cầu và khi tôi chạy lệnh khởi động karma, nó thực sự chạy trong / usr / ... chứ không phải thư mục dev của tôi.
Trong trường hợp của tôi, giải pháp là loại bỏ nghiệp chướng và thay vào đó là cài đặt karma-cli.
npm remove -g karma
npm install -g karma-cli
npm install karma-chrome-launcher --save-dev