疑難排解

karma 有一套廣泛的測試,而我們幫助解決錯誤的時間有限。以下是一些讓您擺脫困境的建議。

npm 審計漏洞 #

請開啟一個能夠解決問題的拉取請求。

我們會收到許多這類報告,來自多個自動化服務、其他專案和使用者。絕大多數都是次要的:如果您想要修復,請開啟一個拉取請求。我們只會採取直接行動來修復影響線上使用者的嚴重問題。

我如何調試 karma 問題? #

許多問題可以通過閱讀「除錯日誌」或使用「瀏覽器開發者工具」來解決。

使用 --log-level debug 來調查伺服器端問題,尤其是設定問題。 #

「除錯」日誌包含最終「設定」的副本:請注意,插件可以更改設定,有時您應用的設定並未產生預期的結果。日誌包含核心 karma 行和來自插件的行:使用日誌前綴來確定您的問題是否需要回報給 karma 插件。

使用 --no-single-run 來調查瀏覽器端問題,尤其是測試檔案中的全域錯誤。 #

--no-single-run 選項會導致伺服器列印一個 URL 並等待。在瀏覽器中開啟 URL 並使用瀏覽器的開發者工具來調查問題。通常,您會想要開啟 URL,然後點擊右上角的「除錯」連結。這會開啟一個具有更乾淨程式碼的新視窗,方便進行除錯。

Angular 設定的問題最好通過諮詢其他 Angular 使用者來除錯。覆蓋率問題可能與您的設定、覆蓋率檢測的編譯器或 karma-coverage 有關。

使用原始碼! #

karma 全部都是 JavaScript 程式碼:也許您可以通過新增日誌記錄來除錯您的問題?

這是 Windows 的常見 問題,原生 ws 模組的編譯失敗。無論如何,ws 有一個後備 JS 實作,npm 應該會使用它。您只需要確保您使用的是最新版本的 npm。為此,您可以

更新 npm #

$ npm install -g npm

或者

重新安裝 NodeJS #

如果您在更新 npm 時遇到問題,您可以直接前往 NodeJS 下載目前的版本。它會附帶最新的 npm 版本。

瀏覽器就是無法啟動。發生什麼事了? #

更有可能是 Karma 無法找到瀏覽器二進制檔(執行檔)的位置。您可以通過使用正確路徑設定適當的環境變數來修復此問題(例如,Google Chrome 使用 CHROME_BIN 環境變數)。查看 [瀏覽器] 以獲取更多資訊。

我從瀏覽器收到一個奇怪的錯誤,我該如何除錯? #

前往擷取的瀏覽器並點擊「除錯」按鈕(或開啟 https://127.0.0.1:9876/debug.html)並使用網路檢查器查看發生了什麼事。(您可能需要重新整理 debug.html 頁面,以便在網路檢查器開啟後生效。)

我從 HTML 檔案收到語法錯誤。看起來預處理器沒有作用。 #

preprocessors 設定中的模式會通過 basePath 設定來解析。請參閱預處理器以獲取更多資訊。您也可以開啟除錯日誌記錄(在啟動 Karma 時使用 --log-level debug),Karma 會顯示哪些檔案正在被預處理。

我收到 npm ERR! peerinvalid Peer 錯誤。我該如何修復? #

嘗試先從您的 node_modules 中移除 karmakarma-* 模組(例如 rm -rf /usr/local/lib/node_modules/karma-*),然後重新安裝 Karma。

我的測試執行速度非常慢。發生什麼事了? #

確保 Karma 的分頁是作用中的。瀏覽器只會給非作用中的分頁最少的 CPU。

注意

如果您在這裡找不到解決您問題的方法,您也可以在 郵件列表Stack Overflow 中尋求幫助。

我真的卡住了。我嘗試了所有方法! #

由於測試設定的複雜性,我們很少在沒有重現步驟的情況下修復錯誤。最好的方法是建立一個 github 專案,安裝所有組件並重現錯誤。