警告 'The API interface has changed' when 运行 Karma on grunt
Warning 'The API interface has changed' when running Karma on grunt
当 运行 karma 来自 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.
我已经用我的配置测试了 运行 karma,都使用 'run' 和 'start' karma 命令,它们似乎工作正常。
使用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 时遇到了同样的问题,只有 jasmine、karma 和 Grunt(也用 Gulp 测试过)。
我搜索了警告消息,但一无所获。我不知道这是否是预期的行为,或者是否有另一种方法可以在没有警告的情况下完成任务。
他们在此处更改了新版本:
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()
如果您像我一样使用 Yeoman 的生成器-angular,则需要在 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));
放在它的正上方,它应该可以正常工作。
如果您使用 grunt-karma 插件从 Grunt 启动 Karma 测试,您需要将 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
我正在使用 Gulp,我必须按如下方式设置我的测试任务:
var Server = require('karma').Server;
gulp.task('test', function (done) {
new Server({
configFile: __dirname + '/karma.conf.js',
singleRun: true
}, done).start();
});
或将 karma 版本回滚到 0.10.0
以使其正常工作。目前 gulp-karma 上没有更改其工作方式的拉取请求,但不确定将来是否会有更改。
这是在 Karma API 更改后更新的有用示例:https://github.com/karma-runner/gulp-karma
当 运行 karma 来自 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.
我已经用我的配置测试了 运行 karma,都使用 'run' 和 'start' karma 命令,它们似乎工作正常。
使用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 时遇到了同样的问题,只有 jasmine、karma 和 Grunt(也用 Gulp 测试过)。
我搜索了警告消息,但一无所获。我不知道这是否是预期的行为,或者是否有另一种方法可以在没有警告的情况下完成任务。
他们在此处更改了新版本:
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()
如果您像我一样使用 Yeoman 的生成器-angular,则需要在 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));
放在它的正上方,它应该可以正常工作。
如果您使用 grunt-karma 插件从 Grunt 启动 Karma 测试,您需要将 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
我正在使用 Gulp,我必须按如下方式设置我的测试任务:
var Server = require('karma').Server;
gulp.task('test', function (done) {
new Server({
configFile: __dirname + '/karma.conf.js',
singleRun: true
}, done).start();
});
或将 karma 版本回滚到 0.10.0
以使其正常工作。目前 gulp-karma 上没有更改其工作方式的拉取请求,但不确定将来是否会有更改。
这是在 Karma API 更改后更新的有用示例:https://github.com/karma-runner/gulp-karma