Pas de fournisseur pour "framework: jasmine"! (Résolution: cadre: jasmin)


98

Lorsque j'exécute la commande, gruntj'obtiens l'avertissement suivant:

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

Quelqu'un sait-il comment résoudre ce problème?

Réponses:


181

J'ai eu la même erreur après avoir créé un nouveau projet le générateur angulaire yeoman (yo angular).

La solution pour moi était d'ajouter "karma-jasmine" aux devDependencies dans packages.json et de relancer "npm install".

npm install karma-jasmine --save-dev

Cela a résolu le message d'erreur "Aucun fournisseur pour" framework: jasmine "!"

J'ai également dû ajouter un lanceur de navigateur karma à devDependencies, car j'ai reçu le message qu'aucun lanceur n'était installé (voir http://karma-runner.github.io/0.10/config/browsers.html ).

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

Mon packages.json ressemblait à ceci après mon action:

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

J'ai changé la ligne suivante dans karma.conf en karma-e2e.conf pour utiliser le karma-safari-launcher:

browsers: ['Safari'],

J'espère que cela fonctionnera pour vous aussi.


2
Merci! La seule chose que j'ai faite de différent, c'est que j'ai utilisé du chromenpm install karma-chrome-launcher --save-dev
Luciano

1
@KyleHayes Voici le rapport de bogue dans le projet generator-angular: github.com/yeoman/generator-angular/issues/629
cjerdonek

1
Je suis Error: No provider for "framework:karma-chrome-launcher"!après ça
David

1
Si vous avez des plugins: [...] ajoutés à karma.config.js, l'installation de karma-jasmine ne résoudra pas le problème. vous devez ajouter 'karma-jasmine' au tableau de plugins comme les plugins: ['karma-jasmine'].
Thaadikkaaran

D'après ce que j'ai compris, "npm install karma-jasmine --save-dev" n'avait aucun effet sur package.json. Alors merci pour cette solution.
Andy

37

Comme l'a dit @Taco, la solution par défaut pour ce problème est d' installer le plug - in approprié, comme ceci: npm install karma-jasmine --save-devou ceci: npm install karma-mocha --save-dev.

Cependant, cette erreur est également attendue lorsque vous exécutez une ancienne version de karma-clicar ils ont mis à jour la façon dont karma charge les plugins. Pour vous assurer que vous disposez de la dernière version, exécutez ceci:

npm install -g karma-cli

1
Cela a réglé le problème pour moi. J'avais les dépendances mentionnées précédemment, mais karma-cli était apparemment obsolète.
icfantv

1
Cela a résolu mon problème. Merci mon pote
shaikh

1
J'ai rencontré ça aussi. Evidemment, ce npm install -g karman'est pas la même chose que npm install -g karma-cli.
Peter Majeed

@PeterMajeed Après avoir installé Jasmine, j'ai pensé que je pourrais peut-être npm install -g karmamais cela ne fonctionne PAS. Vous devez utilisernpm install -g karma-cli
Coburn

34

Mon problème était dans mon karma.config.jsdossier:

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

Cela a empêché le karma-*chargement des autres plugins, notamment karma-jasmine.


1
aleclarson était aussi mon problème. Comme karma-webpackc'était déjà dans mon package.json's devDependencies, j'ai commenté cette pluginsentrée dans mon karma.config.jsdossier.
dave_k_smith

31

Si votre karma.conf.jsspécifie un pluginsattribut, assurez-vous de l'ajouter karma-jasmineà la liste. Si tous les plugins sont préfixés par karma-, vous n'avez pas besoin de spécifier cet attribut car les plugins seront automatiquement chargés.


6
Merci, cela a résolu mon problème, en ajoutant karma-jasmine aux plugins!
sandip

Merci cela a fonctionné - c'est la ligne complète. plugins: ['karma-jasmine', 'karma-chrome-launcher', 'karma-spec-reporter', 'karma-coverage'],
Sam Deering

6

Cela m'est arrivé parce que Karma était installé globalement, et quand j'ai exécuté la commande karma start, il fonctionnait en fait dans / usr / ... plutôt que dans mon répertoire dev.

Dans mon cas, la solution était de supprimer le karma et d'installer karma-cli à la place.

npm remove -g karma
npm install -g karma-cli

2

Mon problème était le "package Karma" sélectionné dans la configuration d'exécution IntelliJ. Je n'ai pas sélectionné le package karma du projet dans le dossier "node_module" du projet: entrez la description de l'image ici


C'est exactement ce que je cherchais (manquant).
vivekmore
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.