【问题标题】:ng-bullet vs karma-parallel vs configuring test module in before all - Angular unit test performance improvementng-bullet vs karma-parallel vs 先配置测试模块 - Angular 单元测试性能改进
【发布时间】:2019-11-12 21:27:38
【问题描述】:
我正在尝试找出最佳和可靠的解决方案来加快我在 Angular 项目中编写的单元测试。
我浏览了一些建议使用其中任何一个的博客
(1) ng-bullet
(2) karma-paralle
(3) ng test --browsers ChromeHeadless
(4) configure your test module inside beforeAll suite
Angular 4 Unit Tests (TestBed) extremely slow(第 4 点)
我的问题是,我们能否一次使用所有这些选项来加快单元测试执行和构建时间,如果不能,我应该选择哪个选项来提高单元测试用例执行的性能。
还有哪个选项更可靠、更易于使用?
任何帮助/建议都是可以理解的。
谢谢
【问题讨论】:
标签:
angular
unit-testing
jasmine
karma-jasmine
angular-unit-test
【解决方案1】:
我不知道ng-bullet,我现在正在尝试实现它。我可能会对我的发现发表评论。
karma-parallel - 我用它来加快测试速度,但这是因为测试是以反模式方式编写的。使用karma-parallel 让您的单元测试更快是一个渺茫的机会,因为您必须记住 karma-parallel 必须委派如何在浏览器实例之间拆分描述块,这本身可能需要很长时间。
无头运行测试可以加快测试速度并减少您计算机上的资源消耗。
对你来说最重要的是对每一个和它们一起进行试验,看看我认为哪种最适合你。
【解决方案2】:
我在我的项目中使用 ng-bullet,但我没有遇到提高单元测试速度的更好方法。在不同的项目中,检查所有测试的 ng-bullet incerese 速度大约快 5 倍。
你可以看到没有 ng-bulle 的情况:
现在怎么样了
如果 ng-bullet 的数量不超过 2000 个测试,我认为是提高测试速度的最简单方法,在这种情况下,您也需要使用 karma-parallel。但在某些情况下,ng-bullet 确实记录了无用的错误,可能很难理解发生了什么。