警告当在咕噜声中运行Karma时,API接口已经改变

从一个咕task任务运行业力时,我得到以下警告:

Running "karma:unit" (karma) task Warning: The api interface has changed. Please use server = new Server(config, [done]) server.start() instead. Use --force to continue. Aborted due to warnings. 

我已经用我的configurationtesting了运行业力,都使用“运行”和“开始”业力命令,他们似乎工作正常。

使用grunt --force可以完成任务,但是它完成了警告。

这是我目前使用的版本:

  • 噶0.13.0
  • 咕噜0.4.5
  • grunt-cli 0.1.13
  • node.js 0.12.7
  • npm 2.11.3

这个项目是使用yeoman(1.4.7)生成的,但是在一个单独的项目中使用Karma的问题与茉莉花,业力和Grunt(也用Gulptesting)是一样的。

我search了警告消息,但什么也没find。 我不知道这是否是预期的行为,或者是否有另一种完成任务而没有警告的方式。

       

网上收集的解决方案 "警告当在咕噜声中运行Karma时,API接口已经改变"

如果使用grunt-karma插件从Grunt开始Karmatesting,则需要将package.json文件中的grunt-karma依赖项更新为0.12.0

 "devDependencies": { ... "grunt-karma": "~0.12.0", ... } 

grunt-karma版本0.12.0是今天早些时候发布的,它使用了新的API: https : //github.com/karma-runner/grunt-karma/releases

他们在这里改变了新版本:

https://github.com/karma-runner/karma/blob/master/CHANGELOG.md#breaking-changes

 var Server = require('karma').Server; var config = { configFile: path.join(__dirname, '/../karma.conf.js'), singleRun: singleRun, autoWatch: !singleRun }; var server = new Server(config, done) server.start() 

我正在使用Gulp,我必须按照以下步骤设置我的testing任务:

 var Server = require('karma').Server; gulp.task('test', function (done) { new Server({ configFile: __dirname + '/karma.conf.js', singleRun: true }, done).start(); }); 

或者将业力版本回滚到0.10.0以使其工作。 这时候没有拉扯gulp-karma的要求来改变它的工作方式,但不知道未来是否会有变化。

以下是在Karma API更改后更新的有用示例: https : //github.com/karma-runner/gulp-karma

如果你像我一样使用Yeoman的generator-angular,那么你需要在grunt-karma.js文件中将其切换出来。

replacevar server = require('karma').server;

var Server = require('karma').Server;

然后在else块的文件底部而不是server.start(config, done);

你会发现server.start(data, finished.bind(done));

刚刚把var server = new Server(data, finished.bind(done)); 在它上面,它应该工作正常。