1

我知道 Karma 有一个内置autoWatch选项,可以在测试文件更改时重新运行我的测试:

var server = new karmaServer({
    autoWatch: true,
    autoWatchBatchDelay: 250,
});
server.start();

有没有办法手动触发此重新运行?我希望能够更好地控制我的测试何时重新运行。

4

2 回答 2

0

如果您需要使用 gulp 手动运行它,只需从中创建一个任务(我假设您想重新运行 server.start):

var server = new karmaServer({
 autoWatch: true,
 autoWatchBatchDelay: 250,
});

gulp.task('runTests', function() {
 server.start(); 
});

然后每当您需要运行测试时,在命令行中运行:

gulp runTests 
于 2016-03-21T18:27:04.727 回答
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 服务器的同一进程运行此任务,您将看到重复的测试结果,因为服务器运行程序都将它们的结果报告给命令行。要仅显示一组测试结果,您可以使用类似这样的方式在后台进程中启动 Karma服务器

于 2016-04-14T17:00:07.713 回答