使用gulp将业力测试分成可运行的块的最佳方法是什么?

时间:2015-12-01 13:22:11

标签: javascript gulp karma-runner karma-jasmine

我们有一个AngularJS项目,其中包含大约20K的LOC和80%的测试覆盖率,因此我们比Karma在一个组中运行的测试要多得多。我们已经考虑过修复内存泄漏问题,但是在AngularJS注入器,ui-router和每个描述及其规范的闭包之间,感觉这个问题太大而无法修复。

因此,我们已经将我们的测试分成了几组。这种方法很有效,直到一个组开始超过大约1,200个测试,然后它才开始减速,直到我们添加到足以最终崩溃浏览器。

我最近摆脱了拆分测试的手动管理,只需对每个源目录进行gulp迭代,并为每个源目录创建一个gulp.task任务。

它有效,但有点像我推动gulp想要工作而不是让它为我做的工作。

是否有插件或更好的方法来解决这个问题?

1 个答案:

答案 0 :(得分:2)

您可以使用karma-parallel在多个浏览器实例之间拆分测试。它在不同的浏览器实例中运行规范,非常简单,易于安装:

npm i karma-parallel

然后添加' parallel'到karma.conf.js中的框架列表

module.exports = function(config) {
  config.set({
    frameworks: ['parallel', 'jasmine']
  });
};

karma-parallel

披露:我是作者