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?
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.
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
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
.
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.
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