Nessun provider per "framework: jasmine"! (Risoluzione: framework: jasmine)


98

Quando eseguo il comando gruntricevo il seguente avviso:

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

Qualcuno sa come risolvere questo problema?

Risposte:


181

Ho avuto lo stesso errore dopo aver creato un nuovo progetto il generatore angolare yeoman (yo angular).

La soluzione per me è stata l'aggiunta di "karma-jasmine" a devDependencies in packages.json ed eseguire nuovamente "npm install".

npm install karma-jasmine --save-dev

Questo ha risolto il messaggio di errore "Nessun provider per" framework: jasmine "!"

Ho anche dovuto aggiungere un launcher del browser karma a devDependencies, poiché ho ricevuto il messaggio che non era installato alcun launcher (vedi http://karma-runner.github.io/0.10/config/browsers.html ).

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

Il mio packages.json appariva così dopo la mia azione:

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

Ho cambiato la seguente riga in karma.conf en karma-e2e.conf per utilizzare il karma-safari-launcher:

browsers: ['Safari'],

Spero che funzioni anche per te.


2
Grazie! L'unica cosa che ho fatto di diverso è stata che ho usato il cromonpm install karma-chrome-launcher --save-dev
Luciano

1
@KyleHayes Ecco la segnalazione di bug nel progetto generator-
angular

1
Ho avuto Error: No provider for "framework:karma-chrome-launcher"!dopo questo
David

1
Se hai plugin: [...] aggiunti a karma.config.js, l'installazione di karma-jasmine non risolverà il problema. devi aggiungere 'karma-jasmine' all'array di plugin come plugin: ['karma-jasmine'].
Thaadikkaaran

Secondo la mia comprensione "npm install karma-jasmine --save-dev" non aveva alcun effetto su package.json. Quindi grazie per questa soluzione.
Andy

37

Come ha detto @Taco, la soluzione predefinita per questo problema è l'installazione del plugin del caso, in questo modo: npm install karma-jasmine --save-devo questo: npm install karma-mocha --save-dev.

Tuttavia, questo errore è previsto anche quando si esegue una vecchia versione di karma-cliperché hanno aggiornato il modo in cui karma carica i plugin. Per assicurarti di avere l'ultima versione, esegui questo:

npm install -g karma-cli

1
Questo ha risolto il problema per me. Avevo le dipendenze menzionate in precedenza, ma apparentemente il karma-cli era obsoleto.
icfantv

1
Questo ha risolto il mio problema. Grazie amico
shaikh

1
Mi sono imbattuto anche in questo. Evidentemente, nonnpm install -g karma è la stessa cosa di . npm install -g karma-cli
Peter Majeed,

@PeterMajeed Dopo aver installato Jasmine, pensavo di poterlo fare, npm install -g karmama NON funziona. Devi usarenpm install -g karma-cli
Coburn

34

Il mio problema era nel mio karma.config.jsfile:

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

Ciò ha causato il karma-*mancato caricamento degli altri plugin, che include karma-jasmine.


1
anche quello di aleclarson era un mio problema. Dal momento che karma-webpackera già nelle mie package.json's devDependencies, ho commentato questa pluginsvoce nel mio karma.config.jsfile.
dave_k_smith

31

Se karma.conf.jsspecifichi un pluginsattributo, assicurati di aggiungerlo karma-jasmineall'elenco. Se tutti i plugin hanno il prefisso karma-, non è necessario specificare questo attributo poiché i plugin verranno caricati automaticamente.


6
Grazie, questo ha risolto il mio problema, aggiungendo karma-jasmine ai plugin!
sandip

Grazie, questo ha funzionato - questa è la linea completa. plugins: ['karma-jasmine', 'karma-chrome-launcher', 'karma-spec-reporter', 'karma-coverage'],
Sam Deering

6

Mi è successo perché avevo Karma installato a livello globale, e quando ho eseguito il comando karma start, in realtà è stato eseguito in / usr / ... anziché nella mia directory dev.

Nel mio caso la soluzione era rimuovere il karma e installare invece karma-cli.

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

2

Il mio problema era il "pacchetto Karma" selezionato nella configurazione di esecuzione di IntelliJ. Non ho selezionato il pacchetto karma del progetto nella cartella "node_module" del progetto: inserisci qui la descrizione dell'immagine


Questo è esattamente quello che stavo (perdendo) cercando.
vivekmore
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.