没有“ framework:jasmine”的提供者!(解决:框架:茉莉花)


98

运行命令时grunt,出现以下警告:

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

有人知道如何解决此问题吗?

Answers:


181

创建新项目yeoman角度生成器(哟角度)后,我遇到了相同的错误。

对我来说,解决方案是在package.json中的devDependencies中添加“ karma-jasmine”,然后再次运行“ npm install”。

npm install karma-jasmine --save-dev

这解决了错误消息“没有提供“ framework:jasmine”!

我还必须将karma浏览器启动器添加到devDependencies,因为我得到一条消息,提示未安装启动器(请参阅http://karma-runner.github.io/0.10/config/browsers.html)。

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

经过我的操作后,我的packages.json看起来像这样:

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

我将karma.conf和karma-e2e.conf中的以下行更改为使用karma-safari-launcher:

browsers: ['Safari'],

我希望这也对您有用。


2
谢谢!我唯一不同的是我使用了镀铬npm install karma-chrome-launcher --save-dev
Luciano

1
@KyleHayes这是generator-angular项目中的错误报告:github.com/yeoman/generator-angular/issues/629
cjerdonek 2014年

1
我得到了Error: No provider for "framework:karma-chrome-launcher"!这一点
David

1
如果您有插件:添加到karma.config.js中,则安装karma-jasmine将无法解决问题。您必须将'karma-jasmine'添加到类似插件的插件数组中:['karma-jasmine']。
Thaadikkaaran

根据我的理解,“ npm install karma-jasmine --save-dev”对package.json没有任何影响。因此,感谢您的解决方案。
安迪

37

作为@Taco说,这个问题的默认解决方案是安装相应的插件,像这样:npm install karma-jasmine --save-dev或者这样:npm install karma-mocha --save-dev

但是,在运行旧版本时也会发生此错误,karma-cli因为它们更新了业力加载插件的方式。为了确保您具有最新版本,请运行以下命令:

npm install -g karma-cli

1
这为我解决了。我有前面提到的依赖项,但是karma-cli显然已经过时了。
icfantv

1
这解决了我的问题。谢谢哥们
shaikh's

1
我也遇到了这个。显然,npm install -g karma并不相同npm install -g karma-cli
彼得·马吉德

@PeterMajeed安装Jasmine之后,我想也许可以,npm install -g karma但是这不起作用。您必须使用npm install -g karma-cli
Coburn

34

我的问题出在我的karma.config.js文件中:

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

这导致其他karma-*插件无法加载,其中包括karma-jasmine


1
aleclarson也是我的问题。由于karma-webpack已经在我package.json的中devDependencies,因此我pluginskarma.config.js文件中对此条目进行了注释。
dave_k_smith

31

如果您karma.conf.js指定plugins属性,请确保添加karma-jasmine到列表中。如果所有插件都带有前缀karma-,则无需指定此属性,因为插件将自动加载。


6
谢谢,这解决了我的问题,在插件中添加了karma-jasmine!
sandip

谢谢你的工作-这是完整的一行。 plugins: ['karma-jasmine', 'karma-chrome-launcher', 'karma-spec-reporter', 'karma-coverage'],
山姆Deering

6

这是因为我在全球范围内安装了Karma,当我运行karma start命令时,它实际上运行在/ usr / ...而不是我的dev目录中。

在我的情况下,解决方案是删除业力并安装业力-cli。

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

2

我的问题是在IntelliJ运行配置中选择了“ Karma软件包”。我没有在项目的“ node_module”文件夹中选择项目的业力软件包: 在此处输入图片说明


这正是我(缺少)所要寻找的。
vivekmore 2016年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.