我知道Karma有一个内置的autoWatch选项,当测试文件更改时,它将导致我的测试重新运行:
var server = new karmaServer({
autoWatch: true,
autoWatchBatchDelay: 250,
});
server.start();有办法手动触发这个重新运行吗?当我的测试重新运行时,我希望有更多的控制权。
发布于 2016-04-14 17:00:07
我了解了更多关于Karma的知识,并发现了karma.runner.run(),它触发了一个已经在运行的服务器(例如,在另一个命令窗口中启动的Karma服务器)来重新运行它的测试。在我的任务中,我现在做了这样的事情:
gulp.task('run-tests', function() {
gulp.watch('/glob/to/my/files').on('change', function() {
karma.runner.run({ configFile: 'karma.conf.js' });
});
});注意,如果您从产生您的Karma服务器的同一个进程运行此任务,您将看到重复的测试结果,因为服务器和运行程序都将其结果报告给命令行。要只显示一组测试结果,可以使用像这样的东西在后台进程中启动Karma服务器。
发布于 2016-03-21 18:27:04
如果您需要使用gulp手动运行它,只需使用它执行一个任务(我假设您希望重新运行server.start):
var server = new karmaServer({
autoWatch: true,
autoWatchBatchDelay: 250,
});
gulp.task('runTests', function() {
server.start();
});然后,每当您需要运行测试时,在命令行中运行:
gulp runTests https://stackoverflow.com/questions/36136027
复制相似问题