在karma-runner/jasmine中分析内存泄漏

Ole*_*leg 13 unit-testing memory-leaks jasmine angularjs karma-runner

我有一个AngularJS应用程序,大约有2000个单元测试,占用大量内存.一旦测试启动,它们运行得非常快(在Chrome中),直到内存消耗达到1.5GB,此时每次测试开始需要大约3秒.

现在,我很该死的肯定,这是不是涉及到为什么我的AngularJS,噶/茉莉花测试运行的这么慢?.

在这一点上,我不知道它是否是泄漏的测试或应用程序本身.我想描述测试执行情况.

我已经阅读了单元测试karma-runner/jasmine profiling并尝试执行以下操作:

您可以使用localhost:9876/debug.html并配置内存.在执行之前检查内存(在Jasmine执行所有describe()块并收集测试之后)然后在执行测试之后 - 它应该是相同的.

但是怎么做呢?

我真的不明白如何检查之前和之后.我可以以某种方式暂停测试执行吗?茉莉是能够告诉我何时"收集测试"并等待我进行分析?

或者还有其他方法吗?

Mar*_*coL 5

这不是一个完整的答案,只是" 大声思考 "......

  1. 我会先开始隔离套件.
  2. 然后我开始看看Chrome控制台API - 所以现在只关注一个浏览器.
  3. 现在在每个beforeEachafterEach触发并关闭探查器(使用每个分析的套件+测试名称):查看console.profile(\[label\])console.profileEnd()调用.
  4. 此时,您无需停止任何操作以进行分析,在测试结束时您将获得所有结果(带标签).

一旦找到内存上升的地方,您可以集中该区域,并可能以更具体的方式开始调试......