簡體   English   中英

Angular2 單元測試。 “Npm 測試”僅成功運行一次,再也不會成功

[英]Angular2 unit tests. 'Npm test' runs successfully only once and never again

我正在嘗試按照此處的說明為我的 Angular2 項目設置單元測試: https ://angular.io/docs/ts/latest/testing/#!#setup 在我第一次運行npm test時使用這個項目一切正常。 比我按ctrl-c停止測試會話。 下次我執行npm test而不對項目進行任何更改時,它會失敗並顯示以下錯誤:

[1] Chrome 53.0.2785 (Windows 10 0.0.0) LOG: Error{originalErr: Error{}}
[1]
    Chrome 53.0.2785 (Windows 10 0.0.0): Executed 0 of 4 SUCCESS (0 secs / 0 secs)
[1] Missing error handler on `socket`.
[1] TypeError: Cannot set property '49007121' of null
[1]     at createHtmlResults (C:\Projects\Tmp\ng-karma-test\node_modules\karma-htmlfile-reporter\index.js:57:32)
[1]     at initializeHtmlForBrowser (C:\Projects\Tmp\ng-karma-test\node_modules\karma-htmlfile-reporter\index.js:78:5)
[1]     at HTMLReporter.onBrowserStart (C:\Projects\Tmp\ng-karma-test\node_modules\karma-htmlfile-reporter\index.js:91:5)
[1]     at Server.<anonymous> (C:\Projects\Tmp\ng-karma-test\node_modules\karma\lib\events.js:13:22)
[1]     at emitTwo (events.js:111:20)
[1]     at Server.emit (events.js:191:7)
[1]     at Browser.onStart (C:\Projects\Tmp\ng-karma-test\node_modules\karma\lib\browser.js:126:13)
[1]     at Socket.<anonymous> (C:\Projects\Tmp\ng-karma-test\node_modules\karma\lib\events.js:13:22)
[1]     at emitOne (events.js:101:20)
[1]     at Socket.emit (events.js:188:7)
[1]     at Socket.onevent (C:\Projects\Tmp\ng-karma-test\node_modules\socket.io\lib\socket.js:335:8)
[1]     at Socket.onpacket (C:\Projects\Tmp\ng-karma-test\node_modules\socket.io\lib\socket.js:295:12)
[1]     at Client.ondecoded (C:\Projects\Tmp\ng-karma-test\node_modules\socket.io\lib\client.js:193:14)
[1]     at Decoder.Emitter.emit (C:\Projects\Tmp\ng-karma-test\node_modules\component-emitter\index.js:134:20)
[1]     at Decoder.add (C:\Projects\Tmp\ng-karma-test\node_modules\socket.io-parser\index.js:247:12)
[1]     at Client.ondata (C:\Projects\Tmp\ng-karma-test\node_modules\socket.io\lib\client.js:175:18)
    Chrome 53.0.2785 (Windows 10 0.0.0) ERROR
[1]   Disconnectedundefined
    Chrome 53.0.2785 (Windows 10 0.0.0): Executed 0 of 4 DISCONNECTED (5.004 secs / 0 secs)
[1] 18 09 2016 18:34:21.946:ERROR [karma]: TypeError: Cannot read property '49007121' of null
[1]     at HTMLReporter.onBrowserComplete (C:\Projects\Tmp\ng-karma-test\node_modules\karma-htmlfile-reporter\index.js:95:23)
[1]     at Server.<anonymous> (C:\Projects\Tmp\ng-karma-test\node_modules\karma\lib\events.js:13:22)
[1]     at emitOne (events.js:101:20)
[1]     at Server.emit (events.js:188:7)
[1]     at Timeout._onTimeout (C:\Projects\Tmp\ng-karma-test\node_modules\karma\lib\browser.js:166:17)
[1]     at tryOnTimeout (timers.js:232:11)
[1]     at Timer.listOnTimeout (timers.js:202:5)
[1] karma start karma.conf.js exited with code 1

引號中的數字每次都不同。 如果我重新啟動我的電腦,單元測試會再次運行,但也只運行一次,然后再次出現相同的錯誤。

謝謝。

PS :將所有包升級到最新版本會出現以下錯誤:node_modules/@types/jasmine/index.d.ts(73,9): error TS2375: Duplicate number index signature。 node_modules/@types/jasmine/index.d.ts(127,9): 錯誤 TS2374: 重復的字符串索引簽名。 node_modules/@types/node/index.d.ts(99,6): 錯誤 TS2300: 重復標識符“BufferEncoding”。 node_modules/@types/node/index.d.ts(544,26): 錯誤 TS2300: 重復標識符“緩沖區”。 node_modules/@types/node/index.d.ts(544,50): 錯誤 TS2300: 重復標識符“SlowBuffer”。 node_modules/@types/node/index.d.ts(565,18): 錯誤 TS2300: 重復標識符“EventEmitter”。 node_modules/@types/node/index.d.ts(724,18): 錯誤 TS2300: 重復標識符“代理”。 node_modules/@types/node/index.d.ts(769,18): 錯誤 TS2300: 重復標識符“工人”。 node_modules/@types/node/index.d.ts(1070,18): 錯誤 TS2300: 重復標識符“腳本”。 node_modules/@types/node/index.d.ts(1912,18): 錯誤 TS2300: 重復標識符“TLSSocket”。 node_modules/@types/node/index.d.ts(2203,18): 錯誤 TS2300: 重復標識符“流”。 node_modules/@types/node/index.d.ts(2214,18): 錯誤 TS2300: 重復標識符“可讀”。 node_modules/@types/node/index.d.ts(2237,18): 錯誤 TS2300: 重復標識符“可寫”。 node_modules/@types/node/index.d.ts(2255,18): 錯誤 TS2300: 重復標識符“雙工”。 node_modules/@types/node/index.d.ts(2276,18): 錯誤 TS2300: 重復標識符“轉換”。 node_modules/@types/node/index.d.ts(2298,18): 錯誤 TS2300: 重復標識符“PassThrough”。 node_modules/@types/node/index.d.ts(2369,5): 錯誤 TS2300: 重復標識符 'export='。 node_modules/@types/node/index.d.ts(2391,18): 錯誤 TS2300: 重復標識符“域”。 打字/全局/節點/index.d.ts(78,6): 錯誤 TS2300: 重復標識符 'BufferEncoding'。 Typings/globals/node/index.d.ts(516,9): 錯誤 TS2502: 'BuffType' 在它自己的類型注釋中被直接或間接引用。 Typings/globals/node/index.d.ts(517,9): 錯誤 TS2502: 'SlowBuffType' 在它自己的類型注釋中被直接或間接引用。 打字/全局/節點/index.d.ts(518,26):錯誤TS2300:重復標識符“緩沖區”。 Typings/globals/node/index.d.ts(518,50): 錯誤 TS2300: 重復標識符“SlowBuffer”。 打字/全局/節點/index.d.ts(539,18):錯誤TS2300:重復標識符'EventEmitter'。 Typings/globals/node/index.d.ts(698,18): 錯誤 TS2300: 重復標識符“代理”。 Typings/globals/node/index.d.ts(743,18): 錯誤 TS2300: 重復標識符“工人”。 Typings/globals/node/index.d.ts(1044,18): 錯誤 TS2300: 重復標識符“腳本”。 Typings/globals/node/index.d.ts(1886,18): 錯誤 TS2300: 重復標識符“TLSSocket”。 打字/全局/節點/index.d.ts(2177,18): 錯誤 TS2300: 重復標識符“流”。 Typings/globals/node/index.d.ts(2188,18): 錯誤 TS2300: 重復標識符“可讀”。 Typings/globals/node/index.d.ts(2211,18): 錯誤 TS2300: 重復標識符“可寫”。 Typings/globals/node/index.d.ts(2229,18): 錯誤 TS2300: 重復標識符“雙工”。 Typings/globals/node/index.d.ts(2250,18): 錯誤 TS2300: 重復標識符“轉換”。 Typings/globals/node/index.d.ts(2272,18): 錯誤 TS2300: 重復標識符“PassThrough”。 打字/全局/節點/index.d.ts(2343,5):錯誤TS2300:重復標識符'export='。 Typings/globals/node/index.d.ts(2365,18): 錯誤 TS2300: 重復標識符“域”。 npm 錯誤! 測試失敗。 有關更多詳細信息,請參見上文。

我今天一直面臨這個問題。 它似乎發生在存在需要修復的潛在錯誤時。 到目前為止,我一直無法修復我的錯誤,因此這可能無法完全解決您的問題。

如果您在karma.conf.js文件中添加/更改這些設置,您應該能夠在測試運行時看到導致錯誤的原因:

config.set({
    ...
    autoWatch: false,
    singleRun: true
});

這也應該防止 karma 在發生錯誤時退出。

是設置問題,需要添加,例如:

autoWatchBatchDelay: 1000

在 karma.conf.js 中

autoWatchBatchDelay:
類型:數字
默認值:250
說明
當 Karma 正在監視文件的更改時,它會嘗試將多個更改批處理到單個運行中,以便測試運行器不會嘗試啟動和重新啟動運行測試的次數過多。 配置設置告訴 Karma 在發生任何更改后在再次開始測試過程之前等待多長時間(以毫秒為單位)。

問候

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM