Brak dostawcy „Framework: Jasmine”! (Rozwiązanie: ramy: jaśmin)

98

Po uruchomieniu polecenia gruntotrzymuję następujące ostrzeżenie:

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

Czy ktoś wie, jak rozwiązać ten problem?

Thalatta
źródło

Odpowiedzi:

181

Miałem ten sam błąd po utworzeniu nowego projektu generatora kątowego yeoman (yo angular).

Rozwiązaniem dla mnie było dodanie "karma-jasmine" do devDependencies w packages.json i ponowne uruchomienie "npm install".

npm install karma-jasmine --save-dev

To rozwiązało komunikat o błędzie „Brak dostawcy dla„ framework: jaśmin ”!”

Musiałem również dodać program uruchamiający przeglądarkę karma do devDependencies, ponieważ otrzymałem komunikat, że żaden program uruchamiający nie został zainstalowany (patrz http://karma-runner.github.io/0.10/config/browsers.html ).

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

Moje packages.json wyglądały tak po wykonaniu mojej akcji:

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

Zmieniłem następującą linię w karma.conf en karma-e2e.conf, aby używać karma-safari-launcher:

browsers: ['Safari'],

Mam nadzieję, że to też zadziała.

Taco
źródło
2
Dzięki! Jedyne, co zrobiłem inaczej, to to, że użyłem chromunpm install karma-chrome-launcher --save-dev
Luciano
1
@KyleHayes Oto raport o błędzie w projekcie generator- angular
cjerdonek
1
Dostałem Error: No provider for "framework:karma-chrome-launcher"!po tym
David
1
Jeśli masz wtyczki: [...] dodane do karma.config.js, to zainstalowanie karma-jasmine nie rozwiąże problemu. musisz dodać 'karma-jasmine' do tablicy wtyczek, jak plugins: ['karma-jasmine'].
Thaadikkaaran
Zgodnie z moim zrozumieniem, "npm install karma-jasmine --save-dev" nie miało żadnego wpływu na package.json. Dzięki za to rozwiązanie.
Andy
37

Jak powiedział @Taco domyślnym rozwiązaniem tego problemu jest zainstalowanie odpowiedniej wtyczki, takie jak to: npm install karma-jasmine --save-devczy to: npm install karma-mocha --save-dev.

Jednak ten błąd jest również oczekiwany, gdy używasz starej wersji programu, karma-cliponieważ zaktualizowała sposób, w jaki karma ładuje wtyczki. Aby upewnić się, że masz najnowszą wersję, uruchom to:

npm install -g karma-cli
André Pena
źródło
1
To naprawiło to dla mnie. Miałem wcześniej wspomniane zależności, ale najwyraźniej karma-cli była nieaktualna.
icfantv
1
To rozwiązało mój problem. Dzięki kolego
shaikh
1
Ja też na to wpadłem. Najwyraźniej npm install -g karmato nie to samo co npm install -g karma-cli.
Peter Majeed
@PeterMajeed Po zainstalowaniu Jasmine pomyślałem, że może mógłbym, npm install -g karmaale to NIE działa. Musisz użyćnpm install -g karma-cli
Coburn
34

Mój problem był w moim karma.config.jspliku:

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

To spowodowało, że inne karma-*wtyczki nie zostały załadowane, w tym karma-jasmine.

aleclarson
źródło
1
aleclarson też był moim problemem. Ponieważ karma-webpackbył już w moich package.json„s devDependencies, ja wykomentowane ten pluginswpis w moim karma.config.jspliku.
dave_k_smith,
31

Jeśli twój karma.conf.jsokreśla pluginsatrybut, pamiętaj, aby dodać karma-jasminego do listy. Jeśli wszystkie wtyczki mają prefiks karma-, nie musisz określać tego atrybutu, ponieważ wtyczki będą ładowane automatycznie.

hughes
źródło
6
Dzięki, to rozwiązało mój problem, dodając karma-jaśmin do wtyczek!
sandip
Dzięki temu zadziałało - to jest pełna linia. plugins: ['karma-jasmine', 'karma-chrome-launcher', 'karma-spec-reporter', 'karma-coverage'],
Sam Deering
6

Zdarzyło mi się to, ponieważ miałem zainstalowaną Karmę globalnie, a kiedy uruchomiłem polecenie uruchomienia karmy, faktycznie działało w / usr / ... zamiast w moim katalogu dev.

W moim przypadku rozwiązaniem było usunięcie karmy i zainstalowanie zamiast niej karma-cli.

npm remove -g karma
npm install -g karma-cli
Segev -CJ- Shmueli
źródło
2

Moim problemem był wybrany „pakiet Karma” w konfiguracji uruchamiania IntelliJ. Nie wybrałem pakietu karma projektu w folderze „node_module” projektu: wprowadź opis obrazu tutaj

Rooky
źródło
To jest dokładnie to, czego szukałem (brakowało).
vivekmore,