鍍金池/ 問(wèn)答/HTML5  網(wǎng)絡(luò)安全  HTML  Office/ angular4+karma+jasmine進(jìn)行UT測(cè)試導(dǎo)致瀏覽器崩潰

angular4+karma+jasmine進(jìn)行UT測(cè)試導(dǎo)致瀏覽器崩潰

測(cè)試環(huán)境:
1、測(cè)試環(huán)境win7、node v8.9.4 chrome65.0.3325.181(64位) firefox60.0.1(64位) 筆記本內(nèi)存8G
2、工程為angular4.4.6開(kāi)發(fā)的大型后臺(tái)管理系統(tǒng)前端頁(yè)面。UT測(cè)試使用karma1.7.0+jasmine2.6.2。工程整體的測(cè)試case為3480個(gè)。
現(xiàn)象:
當(dāng)進(jìn)行全體組件測(cè)試時(shí),無(wú)論是啟動(dòng)firefox還是chrome,瀏覽器內(nèi)存都會(huì)隨著測(cè)試的深入而進(jìn)行增加,并且在測(cè)試運(yùn)行到900個(gè)case左右的時(shí)候,因?yàn)闉g覽器內(nèi)存的暴漲而停止測(cè)試,并且又restart瀏覽器,使得測(cè)試從頭開(kāi)始,無(wú)法完成全體case的測(cè)試,看不到整體代碼的覆蓋率。
問(wèn)題:
1、為了能看到全局的覆蓋率,進(jìn)行全體case的測(cè)試是必須的,所以想知道造成瀏覽器到了一定時(shí)候就重啟,并且內(nèi)存不停增加的原因是什么(自己沒(méi)有分析明白)
2、如何去改善測(cè)試手法,比如可以通過(guò)karma的配置解決這個(gè)問(wèn)題,或者是優(yōu)化測(cè)試代碼去解決(如果是代碼問(wèn)題,那問(wèn)題大概的方向是什么)

已經(jīng)使用的改善方法
1、重新配置karma.config.js文件,比如:
(1)不使用瀏覽器啟動(dòng)而是使用phantomjs,運(yùn)行到一定時(shí)候也會(huì)重啟然后又開(kāi)始重新測(cè)試
(2)清除瀏覽器上的上下文,如clearContext設(shè)置為true,問(wèn)題依舊
2、改善代碼,在每個(gè)測(cè)試文件中都增加afterEach方法,清除全局變量,問(wèn)題也出現(xiàn)

在通過(guò)查看多數(shù)資料后仍然沒(méi)有找到合適的方法使得測(cè)試可以繼續(xù)。所以這里就先拜托大家了。

PS:在另一臺(tái)mac上進(jìn)行測(cè)試也是出現(xiàn)上面的問(wèn)題,mac的內(nèi)存為16G。所以暫時(shí)沒(méi)有升級(jí)硬件的打算。

回答
編輯回答
扯不斷

可以試試使用ChromeHeadless.
在karma.config.js中配置:browsers:['ChromeHeadless']
Headless Chrome 是一種在沒(méi)有瀏覽器用戶界面的無(wú)需顯示環(huán)境中運(yùn)行 Chrome 瀏覽器的方法。使用 Headless Chrome(而不是直接在 Node 中測(cè)試) 的一個(gè)好處是 JavaScript 測(cè)試將在與你的網(wǎng)站用戶相同的環(huán)境中執(zhí)行。Headless Chrome 為你提供了真正的瀏覽器環(huán)境,卻沒(méi)有運(yùn)行完整版本的 Chrome 一樣的內(nèi)存開(kāi)銷(xiāo)。

2017年12月15日 18:12