angular4+karma+jasmine进行UT测试导致浏览器崩溃

发布于 2022-09-07 11:30:49 字数 782 浏览 17 评论 0

测试环境:
1、测试环境win7、node v8.9.4 chrome65.0.3325.181(64位) firefox60.0.1(64位) 笔记本内存8G
2、工程为angular4.4.6开发的大型后台管理系统前端页面。UT测试使用karma1.7.0+jasmine2.6.2。工程整体的测试case为3480个。
现象:
当进行全体组件测试时,无论是启动firefox还是chrome,浏览器内存都会随着测试的深入而进行增加,并且在测试运行到900个case左右的时候,因为浏览器内存的暴涨而停止测试,并且又restart浏览器,使得测试从头开始,无法完成全体case的测试,看不到整体代码的覆盖率。
问题:
1、为了能看到全局的覆盖率,进行全体case的测试是必须的,所以想知道造成浏览器到了一定时候就重启,并且内存不停增加的原因是什么(自己没有分析明白)
2、如何去改善测试手法,比如可以通过karma的配置解决这个问题,或者是优化测试代码去解决(如果是代码问题,那问题大概的方向是什么)

已经使用的改善方法
1、重新配置karma.config.js文件,比如:
(1)不使用浏览器启动而是使用phantomjs,运行到一定时候也会重启然后又开始重新测试
(2)清除浏览器上的上下文,如clearContext设置为true,问题依旧
2、改善代码,在每个测试文件中都增加afterEach方法,清除全局变量,问题也出现

在通过查看多数资料后仍然没有找到合适的方法使得测试可以继续。所以这里就先拜托大家了。

PS:在另一台mac上进行测试也是出现上面的问题,mac的内存为16G。所以暂时没有升级硬件的打算。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

本王不退位尔等都是臣 2022-09-14 11:30:50

可以试试使用ChromeHeadless.
在karma.config.js中配置:browsers:['ChromeHeadless']
Headless Chrome 是一种在没有浏览器用户界面的无需显示环境中运行 Chrome 浏览器的方法。使用 Headless Chrome(而不是直接在 Node 中测试) 的一个好处是 JavaScript 测试将在与你的网站用户相同的环境中执行。Headless Chrome 为你提供了真正的浏览器环境,却没有运行完整版本的 Chrome 一样的内存开销。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文