我们有一个AngularJS项目,其中包含大约20K的LOC和80%的测试覆盖率,因此我们比Karma在一个组中运行的测试要多得多。我们已经考虑过修复内存泄漏问题,但是在AngularJS注入器,ui-router和每个描述及其规范的闭包之间,感觉这个问题太大而无法修复。
因此,我们已经将我们的测试分成了几组。这种方法很有效,直到一个组开始超过大约1,200个测试,然后它才开始减速,直到我们添加到足以最终崩溃浏览器。
我最近摆脱了拆分测试的手动管理,只需对每个源目录进行gulp迭代,并为每个源目录创建一个gulp.task任务。
它有效,但有点像我推动gulp想要工作而不是让它为我做的工作。
是否有插件或更好的方法来解决这个问题?
答案 0 :(得分:2)
您可以使用karma-parallel在多个浏览器实例之间拆分测试。它在不同的浏览器实例中运行规范,非常简单,易于安装:
npm i karma-parallel
然后添加' parallel'到karma.conf.js中的框架列表
module.exports = function(config) {
config.set({
frameworks: ['parallel', 'jasmine']
});
};
披露:我是作者