Нет поставщика для «framework: jasmine»! (Разрешение: рамки: жасмин)

98

Когда я запускаю команду, gruntя получаю следующее предупреждение:

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

Кто-нибудь знает, как решить эту проблему?

Талатта
источник

Ответы:

181

У меня была такая же ошибка после создания нового проекта yeoman angular generator (yo angular).

Решением для меня было добавление «karma-jasmine» к devDependencies в packages.json и повторный запуск «npm install».

npm install karma-jasmine --save-dev

Это решило сообщение об ошибке «Нет поставщика для« framework: jasmine »!»

Мне также пришлось добавить средство запуска браузера karma в devDependencies, поскольку я получил сообщение о том, что средство запуска не было установлено (см. Http://karma-runner.github.io/0.10/config/browsers.html ).

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

После моих действий мой packages.json выглядел так:

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

Я изменил следующую строку в karma.conf и karma-e2e.conf, чтобы использовать программу запуска karma-safari:

browsers: ['Safari'],

Надеюсь, это сработает и для вас.

Тако
источник
2
Спасибо! Единственное, что я сделал иначе, это то, что я использовал хромnpm install karma-chrome-launcher --save-dev
Лучано
1
@KyleHayes Вот отчет об ошибке в проекте generator-angular: github.com/yeoman/generator-angular/issues/629
cjerdonek
1
Я получил Error: No provider for "framework:karma-chrome-launcher"!после этого
Дэвид
1
Если у вас есть плагины: [...] добавленные в karma.config.js, то установка karma-jasmine не решит проблему. вам нужно добавить 'karma-jasmine' в массив плагинов, например plugins: ['karma-jasmine'].
Thaadikkaaran
Насколько я понимаю, «npm install karma-jasmine --save-dev» никак не повлиял на package.json. Так что спасибо за это решение.
Энди
37

По словам @Taco, решение по умолчанию для этой проблемы является установка соответствующего плагина, например: npm install karma-jasmine --save-devили это: npm install karma-mocha --save-dev.

Однако эта ошибка также ожидается, когда вы используете старую версию, karma-cliпотому что они обновили способ загрузки плагинов кармой. Чтобы убедиться, что у вас последняя версия, запустите это:

npm install -g karma-cli
Андре Пена
источник
1
Это исправило это для меня. У меня были ранее упомянутые зависимости, но, по-видимому, karma-cli устарела.
icfantv
1
Это устранило мою проблему. Спасибо, приятель
шейх
1
Я тоже столкнулся с этим. Очевидно, npm install -g karmaэто не то же самое, что npm install -g karma-cli.
Питер Маджид
@PeterMajeed После установки Jasmine я подумал, может, смогу, npm install -g karmaно это НЕ работает. Вы должны использоватьnpm install -g karma-cli
Coburn
34

Моя проблема была в моем karma.config.jsфайле:

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

Из-за этого karma-*не загружались другие плагины, в том числе karma-jasmine.

Aleclarson
источник
1
Алекларсон тоже была моей проблемой. Так karma-webpackуже было в моих package.json«с devDependencies, я комментировал эту pluginsзапись в моем karma.config.jsфайле.
dave_k_smith 07
31

Если вы karma.conf.jsуказываете pluginsатрибут, обязательно добавьте karma-jasmineего в список. Если все плагины имеют префикс karma-, вам не нужно указывать этот атрибут, так как плагины будут загружены автоматически.

Хьюз
источник
6
Спасибо, это решило мою проблему, добавив карма-жасмин в плагины!
Sandip
Спасибо, это сработало - это полная строка. plugins: ['karma-jasmine', 'karma-chrome-launcher', 'karma-spec-reporter', 'karma-coverage'],
Сэм Диринг
6

Это случилось со мной, потому что у меня Karma была установлена ​​глобально, и когда я запускал команду karma start, она фактически запускалась в / usr / ..., а не в моем каталоге dev.

В моем случае решением было удалить karma и вместо этого установить karma-cli.

npm remove -g karma
npm install -g karma-cli
Сегев -CJ- Шмуели
источник
2

Моя проблема заключалась в выборе «пакета Karma» в конфигурации запуска IntelliJ. Я не выбирал пакет karma проекта в папке "node_module" проекта: введите описание изображения здесь

Новичок
источник
Это именно то, что я (отсутствовал) искал.
vivekmore