由於我創建了一堆新的指令測試(在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可能導致這種情況? –
一定是巧合,我們在同一時間有同樣的問題!請參閱我的答案,瞭解我們如何解決這個問題 –