Nenhum provedor para “framework: jasmine”! (Resolvendo: estrutura: jasmim)

98

Quando executo o comando grunt, recebo o seguinte aviso:

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

Alguém sabe como resolver esse problema?

Thalatta
fonte

Respostas:

181

Eu tive o mesmo erro depois de criar um novo projeto, o gerador angular yeoman (yo angular).

A solução para mim foi adicionar "karma-jasmine" ao devDependencies em packages.json e rodar "npm install" novamente.

npm install karma-jasmine --save-dev

Isso resolveu a mensagem de erro "Nenhum provedor para“ framework: jasmine ”!"

Também tive que adicionar um iniciador de navegador karma ao devDependencies, pois recebi a mensagem de que nenhum iniciador foi instalado (consulte http://karma-runner.github.io/0.10/config/browsers.html ).

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

Meu packages.json ficou assim depois da minha ação:

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

Mudei a seguinte linha em karma.conf en karma-e2e.conf para usar o karma-safari-launcher:

browsers: ['Safari'],

Espero que isso funcione para você também.

Taco
fonte
2
Obrigado! A única coisa que fiz diferente foi usar o cromonpm install karma-chrome-launcher --save-dev
Luciano,
1
@KyleHayes Aqui está o relatório do bug no projeto generator-angular: github.com/yeoman/generator-angular/issues/629
cjerdonek
1
Eu fui Error: No provider for "framework:karma-chrome-launcher"!atrás disso
David
1
Se você tiver plug-ins: [...] adicionados ao karma.config.js, a instalação do karma-jasmine não resolverá o problema. você tem que adicionar 'karma-jasmine' ao array de plugins como plugins: ['karma-jasmine'].
Thaadikkaaran
De acordo com meu entendimento, "npm install karma-jasmine --save-dev" não estava tendo nenhum efeito no package.json. Obrigado por esta solução.
Andy
37

Como disse @Taco, a solução padrão para este problema é instalar o plugin apropriado, como este: npm install karma-jasmine --save-devou este: npm install karma-mocha --save-dev.

No entanto, esse erro também é esperado quando você está executando uma versão antiga do karma-cliporque eles atualizaram a forma como o karma carrega os plug-ins. Para garantir que você tenha a versão mais recente, execute o seguinte:

npm install -g karma-cli
André Pena
fonte
1
Isso consertou para mim. Eu tinha as dependências mencionadas anteriormente, mas o karma-cli estava desatualizado, aparentemente.
icfantv
1
Isso resolveu meu problema. Obrigado amigo
shaikh
1
Eu também corri para isso. Evidentemente, nãonpm install -g karma é a mesma coisa que . npm install -g karma-cli
Peter Majeed
@PeterMajeed Depois de instalar o Jasmine, pensei que talvez pudesse, npm install -g karmamas NÃO funciona. Você deve usarnpm install -g karma-cli
Coburn
34

Meu problema estava no meu karma.config.jsarquivo:

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

Isso fez com que os outros karma-*plug-ins não fossem carregados, incluindo o karma-jasmine.

aleclarson
fonte
1
o de aleclarson também era meu problema. Desde karma-webpackjá estava em meus package.json's devDependencies, eu comentei uma pluginsentrada no meu karma.config.jsarquivo.
dave_k_smith
31

Se o seu karma.conf.jsespecifica um pluginsatributo, certifique-se de adicioná karma-jasmine-lo à lista. Se todos os plug-ins forem prefixados com karma-, você não precisa especificar este atributo, pois os plug-ins serão carregados automaticamente.

abraços
fonte
6
Obrigado, isso resolveu meu problema, adicionando karma-jasmine aos plug-ins!
sandip de
Obrigado, funcionou - esta é a linha completa. plugins: ['karma-jasmine', 'karma-chrome-launcher', 'karma-spec-reporter', 'karma-coverage'],
Sam Deering
6

Aconteceu comigo porque eu tinha o Karma instalado globalmente e, quando executei o comando karma start, ele na verdade rodou em / usr / ... em vez de no meu diretório dev.

No meu caso, a solução foi remover o carma e instalar o karma-cli.

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

Meu problema era o "pacote Karma" selecionado na configuração de execução do IntelliJ. Não selecionei o pacote de karma do projeto na pasta "node_module" do projeto: insira a descrição da imagem aqui

Rooky
fonte
Isso é exatamente o que eu estava (faltando) procurando.
vivekmore