我知道Karma有一个内置的autoWatch
选项,可以在测试文件发生变化时重新运行我的测试:
var server = new karmaServer({
autoWatch: true,
autoWatchBatchDelay: 250,
});
server.start();
有没有办法手动触发此重新运行?我希望能够更好地控制我的测试重新运行的时间。
答案 0 :(得分:0)
如果您需要使用gulp手动运行它,只需从中创建一个任务(我假设您要重新运行server.start):
var server = new karmaServer({
autoWatch: true,
autoWatchBatchDelay: 250,
});
gulp.task('runTests', function() {
server.start();
});
然后,只要您需要运行测试,请在命令行中运行:
gulp runTests
答案 1 :(得分:0)
我学到了更多关于Karma的知识并发现了karma.runner.run()
,它触发了一个已经运行的服务器(例如,你在另一个命令窗口中启动的Karma服务器)来重新运行它的测试。在我的gulp任务中,我现在做这样的事情:
gulp.task('run-tests', function() {
gulp.watch('/glob/to/my/files').on('change', function() {
karma.runner.run({ configFile: 'karma.conf.js' });
});
});
请注意,如果您从生成Karma服务器的同一进程中运行此任务,您将看到重复的测试结果,因为运行时服务器和都会将其结果报告给命令行。要仅显示一组测试结果,您可以使用something like this在后台进程中启动您的Karma服务器。