web-dev-qa-db-fra.com

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

Lorsque j'exécute la commande grunt, l'avertissement suivant s'affiche:

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

Est-ce que quelqu'un sait comment résoudre ce problème?

98
Thalatta

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

La solution pour moi consistait à ajouter "karma-jasmine" aux devDependencies dans packages.json et à exécuter à nouveau "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 devanceur 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 package.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 et karma-e2e.conf pour utiliser le lanceur karma-safari:

browsers: ['Safari'],

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

181
Taco

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

Cependant, cette erreur est également attendue lorsque vous exécutez une ancienne version de karma-cli _ parce qu'ils ont mis à jour la façon dont karma charge les plugins. Pour être sûr d'avoir la dernière version, lancez ceci:

npm install -g karma-cli
37
André Pena

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

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

Cela a causé l'autre karma-* plugins à ne pas charger, ce qui inclut karma-jasmine.

34
aleclarson

Si votre karma.conf.js spécifie un attribut plugins, assurez-vous d’ajouter karma-jasmine à la liste. Si tous les plugins portent le préfixe karma-, vous n'avez pas besoin de spécifier cet attribut car les plugins seront automatiquement chargés.

30
hughes

Cela m'est arrivé parce que Karma était installé dans le monde entier et que lorsque je lançais la commande karma start, il s'exécutait dans/usr/... plutôt que dans mon répertoire dev.

Dans mon cas, la solution consistait à supprimer le karma et à installer à la place le karma-cli.

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

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

2
Rooky