当从grunt任务运行业力时,我收到以下警告:
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.
我已经测试了使用我的配置运行业力,使用'run'和'start'karma命令,它们似乎工作正常。
使用grunt --force
可以完成任务,但会以警告完成。
这是我目前正在使用的版本:
该项目是使用自耕农(1.4.7)生成的,但我在一个单独的项目中使用Karma也有同样的问题,只有茉莉,业力和Grunt(也用Gulp测试过)。
我搜索了警告信息,但一无所获。我不知道这是否是预期的行为,或者是否有其他方法可以在没有警告的情况下完成任务。
答案 0 :(得分:5)
他们在这里换了新版本:
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()
答案 1 :(得分:4)
如果您使用grunt-karma插件从Grunt启动Karma测试,则需要将grunt-karma
文件中的package.json
依赖项更新为 0.12.0 :
"devDependencies": {
...
"grunt-karma": "~0.12.0",
...
}
今天早些时候发布了0.12.0版本的grunt-karma,它使用了新的API:https://github.com/karma-runner/grunt-karma/releases
答案 2 :(得分:0)
我正在使用Gulp,我必须按如下方式设置我的测试任务:
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
答案 3 :(得分:-1)
如果您像我一样使用Yeoman的生成器角度,您需要在grunt-karma.js文件中将其切换出来。
替换var 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));
放在它正上方就可以了。