警告当在咕噜声中运行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。 我不知道这是否是预期的行为,或者是否有另一种完成任务而没有警告的方式。
如果使用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));
在它上面,它应该工作正常。