由于我创建了一堆新的指令测试(在JHipster项目中),我正面临着这个问题。业力单位测试由一个咕task任务执行。 我想明确强调,我的问题是不同的这两个(和其他几个人我不允许张贴),我在GitHub上找到:Karma单元测试在无限循环中反复运行
https://github.com/karma-runner/karma/issues/1077
https://github.com/karma-runner/karma/issues/393
所不同的是那个业力永远不会执行测试,而是继续在循环中运行它们,就好像在配置的位置中有无数个测试一样。可以在命令行输出中清楚地看到:
Firefox 45.0.0 (Windows 7 0.0.0): Executed 321 of 192 (skipped 7) SUCCESS (0 secs/1 min 3.757 secs)
Chrome 51.0.2704 (Windows 7 0.0.0): Executed 399 of 192 (skipped 11) SUCCESS (0 secs/1 min 2.239 secs)
PhantomJS 2.1.1 (Windows 7 0.0.0): Executed 444 of 192 (skipped 11) SUCCESS (0 secs/1 min 0.515 secs)
它会一直持续下去。执行经过近一个小时,这是结果:
Chrome 51.0.2704 (Windows 7 0.0.0): Executed 20171 of 192 (skipped 472) SUCCESS (0 secs/50 mins 7.281 secs)
Firefox 45.0.0 (Windows 7 0.0.0): Executed 3186 of 192 (skipped 72) DISCONNECTED (14 mins 48.503 secs/12 mins 16.547 secs)
PhantomJS 2.1.1 (Windows 7 0.0.0): Executed 27054 of 192 (skipped 611) DISCONNECTED (48 mins 25.253 secs/47 mins 34.776 secs)
不要紧,测试是否通过或失败,或者他们为什么会失败(TypeError, ReferenceError...
),测试永远无论运行(所有测试在这里,你可以看到)。只有当我停止命令行中的咕噜声时,执行才会停止。
过去几个月,噶玛配置和咕噜声任务没有改变。 Singlerun和autowatch设置(以及任何其他)是无关紧要的。
被测试的代码似乎是不相关的。一些变化,他们让问题消失了一段时间,但是当我写新的测试时,它总是回来。当然,我一开始以为我的代码是责任,但下面的内容会说明为什么它不是一个合乎逻辑的结论。
奇怪的行为总是在创建新测试时开始,但测试代码本身似乎是不相关的,因为新测试从不使用任何特殊操作或覆盖其他测试没有的组件。而且,即使新测试是一个完全空的函数体,它仍然会产生一种奇怪的行为,这表明它不是程序中的新决策路径,当测试覆盖时它会导致问题。这就是为什么我不相信代码是罪魁祸首。 我也设法通过关闭随机测试(我们很久以前没有任何问题使用)来停止无限执行,但是当我添加新测试时问题总是回来。
环境无关紧要。测试在我的Windows机器上和在Linux服务器上的CI上无限运行。
我也认为这可能是一个内存限制问题,因为一段时间,浏览器崩溃在某个测试上,与新功能或新测试无关(并且一直工作正常) 。当我关掉那个测试时,问题就停止了一段时间,但后来又回来了(因为我一直在写测试)。
我将所有NPM软件包和Bower组件更新到最新版本,但这并未改变无限循环。
现在我完全没有想法。有没有人遇到过这种奇怪的行为和控制台输出?
今天同样的事情发生在我们身上 - 我想知道是否有释放业力/茉莉/ someOtherDependency可能导致这种情况? –
一定是巧合,我们在同一时间有同样的问题!请参阅我的答案,了解我们如何解决这个问题 –