Kein Anbieter für "Framework: Jasmin"! (Auflösung: Gerüst: Jasmin)

98

Wenn ich den Befehl ausführe grunt, wird folgende Warnung angezeigt:

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

Weiß jemand, wie man dieses Problem löst?

Thalatta
quelle

Antworten:

181

Ich hatte den gleichen Fehler, nachdem ich ein neues Projekt erstellt hatte, den Yeoman-Winkelgenerator (Yo-Winkel).

Die Lösung für mich bestand darin, den devDependencies in packages.json "karma-jasmine" hinzuzufügen und "npm install" erneut auszuführen.

npm install karma-jasmine --save-dev

Dies löste die Fehlermeldung "Kein Anbieter für" Framework: Jasmin "!"

Ich musste den devDependencies auch einen Karma-Browser-Launcher hinzufügen, da ich die Meldung erhielt, dass kein Launcher installiert war (siehe http://karma-runner.github.io/0.10/config/browsers.html ).

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

Meine packages.json sah nach meiner Aktion so aus:

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

Ich habe die folgende Zeile in karma.conf en karma-e2e.conf geändert, um den Karma-Safari-Launcher zu verwenden:

browsers: ['Safari'],

Ich hoffe, dass dies auch für Sie funktioniert.

Taco
quelle
2
Vielen Dank! Das einzige, was ich anders gemacht habe, war, dass ich Chrom verwendet habenpm install karma-chrome-launcher --save-dev
Luciano
1
@ KyleHayes Hier ist der Fehlerbericht im Generator-Winkel-Projekt: github.com/yeoman/generator-angular/issues/629
cjerdonek
1
Ich bekam Error: No provider for "framework:karma-chrome-launcher"!danach
David
1
Wenn Sie Plugins: [...] zu karma.config.js hinzugefügt haben, wird das Problem durch die Installation von karma-jasmine nicht behoben. Sie müssen 'Karma-Jasmin' zu Plugins hinzufügen, die wie Plugins angeordnet sind: ['Karma-Jasmin'].
Thaadikkaaran
Nach meinem Verständnis hatte "npm install karma-jasmine --save-dev" keine Auswirkungen auf package.json. Vielen Dank für diese Lösung.
Andy
37

Wie @Taco sagte, besteht die Standardlösung für dieses Problem darin, das entsprechende Plugin wie folgt zu installieren: npm install karma-jasmine --save-devoder : npm install karma-mocha --save-dev.

Dieser Fehler wird jedoch auch erwartet, wenn Sie eine alte Version von karma-cliausführen, da diese die Art und Weise aktualisiert hat, wie Karma die Plugins lädt. Führen Sie Folgendes aus, um sicherzustellen, dass Sie über die neueste Version verfügen:

npm install -g karma-cli
André Pena
quelle
1
Das hat es für mich behoben. Ich hatte die zuvor erwähnten Abhängigkeiten, aber Karma-Cli war anscheinend veraltet.
icfantv
1
Dies hat mein Problem behoben. Danke Kumpel
Shaikh
1
Ich bin auch darauf gestoßen. Offensichtlich npm install -g karmaist das nicht dasselbe wie npm install -g karma-cli.
Peter Majeed
@PeterMajeed Nach der Installation von Jasmine dachte ich, ich könnte npm install -g karmaes vielleicht, aber das funktioniert NICHT. Sie müssen verwendennpm install -g karma-cli
Coburn
34

Mein Problem war in meiner karma.config.jsDatei:

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

Dies führte dazu, dass die anderen karma-*Plugins nicht geladen wurden, einschließlich karma-jasmine.

Aleclarson
quelle
1
Aleclarson war auch mein Problem. Da karma-webpackmeine war schon in package.json‚s devDependencies, sagte ich dieses heraus pluginsin meinem Eintrag karma.config.jsDatei.
dave_k_smith
31

Wenn Sie karma.conf.jsein pluginsAttribut angeben , müssen Sie karma-jasminees der Liste hinzufügen . Wenn allen Plugins das Präfix vorangestellt ist karma-, müssen Sie dieses Attribut nicht angeben, da die Plugins automatisch geladen werden.

Hughes
quelle
6
Danke, dies hat mein Problem gelöst und den Plugins Karma-Jasmin hinzugefügt!
Sandip
Danke, das hat funktioniert - das ist die ganze Linie. plugins: ['karma-jasmine', 'karma-chrome-launcher', 'karma-spec-reporter', 'karma-coverage'],
Sam Deering
6

Es ist mir passiert, weil ich Karma global installiert hatte und als ich den Karma-Startbefehl ausführte, lief er tatsächlich in / usr / ... und nicht in meinem Entwicklerverzeichnis.

In meinem Fall bestand die Lösung darin, Karma zu entfernen und stattdessen Karma-Cli zu installieren.

npm remove -g karma
npm install -g karma-cli
Segev-CJ-Shmueli
quelle
2

Mein Problem war das ausgewählte "Karma-Paket" in der IntelliJ-Ausführungskonfiguration. Ich habe das Karma-Paket des Projekts nicht im Ordner "node_module" des Projekts ausgewählt: Geben Sie hier die Bildbeschreibung ein

Anfänger
quelle
Genau das habe ich gesucht (vermisst).
Vivekmore