有没有办法批量处理 Karma - Angular 单元测试?

Posted

技术标签:

【中文标题】有没有办法批量处理 Karma - Angular 单元测试?【英文标题】:Is there a way to process Karma - Angular unit tests in batches? 【发布时间】:2017-10-01 14:17:18 【问题描述】:

我们面临一个问题,即我们的测试将在某个时间点后开始失败或运行速度极慢。我在网上看到其他人也面临问题的文章。这些失败的主要原因是我们处理 DOM 时浏览器消耗的内存。 我们正在使用种子项目,它使用 SystemJS 构建我们的应用程序。我们当前的 Angular 版本是 2.2.3。

所以,我正在考虑一种解决方法,我可以并行处理我们的测试运行(即多个 karma 服务器运行,我确实尝试过,但它开始消耗 100% 的 CPU)或批处理。因此,批量小测试运行将确保业力停止并重新开始。

有办法吗?

另外,如果我们能够做到这一点,如何获得一致的覆盖?我们正在使用伊斯坦布尔。

如果您还有其他问题,请告诉我。

例如我们的服务和模型相关测试在 3 秒内运行(500 多个测试),但我们的组件测试 (900+) 需要 15 分钟

【问题讨论】:

我们的团队也对测试分片功能感兴趣。 Karma backlog 中有一个未解决的问题,但它已经过时并且似乎已经失去了动力。 github.com/karma-runner/karma/issues/439 是的,我看过那个帖子。没有太大帮助。如果这个问题得到足够多的选票,它可能会传到一些人的耳朵里。 【参考方案1】:

有一个很好的 Karma 插件,它允许分片测试并并行执行它们 - https://www.npmjs.com/package/karma-parallel 我们已将它集成到 AngularJS 和 Angular 4 和 5 项目中。 拥有超过 2000 次测试的代码库是必须的。

【讨论】:

以上是关于有没有办法批量处理 Karma - Angular 单元测试?的主要内容,如果未能解决你的问题,请参考以下文章

Angular5 / Karma'选择器'不是已知元素[重复]

在 Angular 8 (Karma 4.1.0) 升级后,在 Angular 7 (Karma 2.0.4) 中成功完成的 Karma 测试失败

使用 jasmine / karma 进行 Angular 4 单元测试和 http post mocking - 如何修复

未捕获的类型错误:无法读取未定义抛出的属性“coSearchCriteria” - Angular Karma/Jasmine

Angular - Jasmine/karma - 订阅 lambda 表达式未执行

karma config将文件移动到基 目录