手动触发 Karma 重新运行测试
Manually trigger Karma to rerun tests
我知道 Karma 有一个内置的 autoWatch
选项,它会在测试文件更改时重新运行我的测试:
var server = new karmaServer({
autoWatch: true,
autoWatchBatchDelay: 250,
});
server.start();
有没有办法手动触发重新运行?我想更好地控制何时重新运行我的测试。
如果您需要使用 gulp 手动 运行 它,只需从中创建一个任务(我假设您想要重新 运行 server.start):
var server = new karmaServer({
autoWatch: true,
autoWatchBatchDelay: 250,
});
gulp.task('runTests', function() {
server.start();
});
然后每当你需要运行测试时,运行在命令行中:
gulp runTests
我了解了更多关于 Karma 的知识并发现了 karma.runner.run()
,它触发了一个已经 运行ning 的服务器(例如,您在不同命令中启动的 Karma 服务器 window ) 重新运行 它的测试。在我的 gulp 任务中,我现在做这样的事情:
gulp.task('run-tests', function() {
gulp.watch('/glob/to/my/files').on('change', function() {
karma.runner.run({ configFile: 'karma.conf.js' });
});
});
请注意,如果您 运行 从生成您的 Karma 服务器的同一进程执行此任务,您将看到重复的测试结果,因为服务器 和 运行ner 向命令行报告他们的结果。要仅显示一组测试结果,您可以使用 something like this.
在后台进程中启动 Karma 服务器
我知道 Karma 有一个内置的 autoWatch
选项,它会在测试文件更改时重新运行我的测试:
var server = new karmaServer({
autoWatch: true,
autoWatchBatchDelay: 250,
});
server.start();
有没有办法手动触发重新运行?我想更好地控制何时重新运行我的测试。
如果您需要使用 gulp 手动 运行 它,只需从中创建一个任务(我假设您想要重新 运行 server.start):
var server = new karmaServer({
autoWatch: true,
autoWatchBatchDelay: 250,
});
gulp.task('runTests', function() {
server.start();
});
然后每当你需要运行测试时,运行在命令行中:
gulp runTests
我了解了更多关于 Karma 的知识并发现了 karma.runner.run()
,它触发了一个已经 运行ning 的服务器(例如,您在不同命令中启动的 Karma 服务器 window ) 重新运行 它的测试。在我的 gulp 任务中,我现在做这样的事情:
gulp.task('run-tests', function() {
gulp.watch('/glob/to/my/files').on('change', function() {
karma.runner.run({ configFile: 'karma.conf.js' });
});
});
请注意,如果您 运行 从生成您的 Karma 服务器的同一进程执行此任务,您将看到重复的测试结果,因为服务器 和 运行ner 向命令行报告他们的结果。要仅显示一组测试结果,您可以使用 something like this.
在后台进程中启动 Karma 服务器