¡Ningún proveedor para "framework: jasmine"! (Resolución: marco: jazmín)

98

Cuando ejecuto el comando grunt, aparece la siguiente advertencia:

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

¿Alguien sabe cómo resolver este problema?

Thalatta
fuente

Respuestas:

181

Tuve el mismo error después de crear un nuevo proyecto, el generador angular yeoman (yo angular).

La solución para mí fue agregar "karma-jasmine" a devDependencies en packages.json y ejecutar "npm install" nuevamente.

npm install karma-jasmine --save-dev

Esto solucionó el mensaje de error "¡No hay proveedor para" framework: jasmine "!"

También tuve que agregar un iniciador de navegador karma a devDependencies, ya que recibí el mensaje de que no se instaló ningún iniciador (consulte http://karma-runner.github.io/0.10/config/browsers.html ).

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

Mi packages.json se veía así después de mi acción:

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

Cambié la siguiente línea en karma.conf en karma-e2e.conf para usar karma-safari-launcher:

browsers: ['Safari'],

Espero que esto funcione para usted también.

Taco
fuente
2
¡Gracias! Lo único que hice diferente fue que usé cromonpm install karma-chrome-launcher --save-dev
Luciano
1
@KyleHayes Aquí está el informe de error en el proyecto generator-angular: github.com/yeoman/generator-angular/issues/629
cjerdonek
1
Llegué Error: No provider for "framework:karma-chrome-launcher"!después de esto
David
1
Si tiene complementos: [...] agregados a karma.config.js, la instalación de karma-jasmine no resolverá el problema. tienes que agregar 'karma-jasmine' a la matriz de complementos como complementos: ['karma-jasmine'].
Thaadikkaaran
Según mi entendimiento, "npm install karma-jasmine --save-dev" no estaba teniendo ningún efecto en package.json. Así que gracias por esta solución.
Andy
37

Como dijo @Taco, la solución por defecto para este problema es instalar el plugin apropiado, así: npm install karma-jasmine --save-devo esto: npm install karma-mocha --save-dev.

Sin embargo, este error también se espera cuando ejecuta una versión anterior de karma-cliporque actualizaron la forma en que karma carga los complementos. Para asegurarse de tener la última versión, ejecute esto:

npm install -g karma-cli
André Pena
fuente
1
Esto me lo arregló. Tenía las dependencias mencionadas anteriormente, pero karma-cli estaba desactualizado, aparentemente.
icfantv
1
Esto solucionó mi problema. Gracias amigo
jeque
1
También me encontré con esto. Evidentemente, nonpm install -g karma es lo mismo que npm install -g karma-cli.
Peter Majeed
@PeterMajeed Después de instalar Jasmine, pensé que tal vez podría, npm install -g karmapero esto NO funciona. Debe usarnpm install -g karma-cli
Coburn
34

Mi problema estaba en mi karma.config.jsarchivo:

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

Esto hizo que los otros karma-*complementos no se cargaran, lo que incluye karma-jasmine.

Aleclarson
fuente
1
Aleclarson's también era mi problema. Puesto que karma-webpackya estaba en mis package.json's devDependencies, le comenté a cabo esta pluginsentrada en mi karma.config.jsarchivo.
dave_k_smith
31

Si karma.conf.jsespecifica un pluginsatributo, asegúrese de agregarlo karma-jasminea la lista. Si todos los complementos tienen el prefijo karma-, no es necesario que especifique este atributo, ya que los complementos se cargarán automáticamente.

abrazos
fuente
6
Gracias, esto resolvió mi problema, ¡agregando karma-jasmine a los complementos!
Sandip
Gracias, esto funcionó, esta es la línea completa. plugins: ['karma-jasmine', 'karma-chrome-launcher', 'karma-spec-reporter', 'karma-coverage'],
Sam Deering
6

Me pasó porque tenía Karma instalado globalmente, y cuando ejecuté el comando karma start, en realidad se ejecutó en / usr / ... en lugar de en mi directorio dev.

En mi caso, la solución fue eliminar karma e instalar karma-cli en su lugar.

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

Mi problema fue el "paquete Karma" seleccionado en la configuración de ejecución de IntelliJ. No seleccioné el paquete karma del proyecto en la carpeta "node_module" del proyecto: ingrese la descripción de la imagen aquí

Novato
fuente
Esto es exactamente lo que (faltaba) buscando.
vivekmore