karma 有一套廣泛的測試,而我們幫助解決錯誤的時間有限。以下是一些讓您擺脫困境的建議。
請開啟一個能夠解決問題的拉取請求。
我們會收到許多這類報告,來自多個自動化服務、其他專案和使用者。絕大多數都是次要的:如果您想要修復,請開啟一個拉取請求。我們只會採取直接行動來修復影響線上使用者的嚴重問題。
許多問題可以通過閱讀「除錯日誌」或使用「瀏覽器開發者工具」來解決。
--log-level debug
來調查伺服器端問題,尤其是設定問題。 #「除錯」日誌包含最終「設定」的副本:請注意,插件可以更改設定,有時您應用的設定並未產生預期的結果。日誌包含核心 karma
行和來自插件的行:使用日誌前綴來確定您的問題是否需要回報給 karma 插件。
--no-single-run
來調查瀏覽器端問題,尤其是測試檔案中的全域錯誤。 #--no-single-run
選項會導致伺服器列印一個 URL 並等待。在瀏覽器中開啟 URL 並使用瀏覽器的開發者工具來調查問題。通常,您會想要開啟 URL,然後點擊右上角的「除錯」連結。這會開啟一個具有更乾淨程式碼的新視窗,方便進行除錯。
Angular 設定的問題最好通過諮詢其他 Angular 使用者來除錯。覆蓋率問題可能與您的設定、覆蓋率檢測的編譯器或 karma-coverage 有關。
karma
全部都是 JavaScript 程式碼:也許您可以通過新增日誌記錄來除錯您的問題?
ws
模組相關的錯誤,我該如何解決? #這是 Windows 的常見 問題,原生 ws 模組的編譯失敗。無論如何,ws
有一個後備 JS 實作,npm 應該會使用它。您只需要確保您使用的是最新版本的 npm。為此,您可以
$ npm install -g npm
或者
如果您在更新 npm 時遇到問題,您可以直接前往 NodeJS 下載目前的版本。它會附帶最新的 npm 版本。
更有可能是 Karma 無法找到瀏覽器二進制檔(執行檔)的位置。您可以通過使用正確路徑設定適當的環境變數來修復此問題(例如,Google Chrome 使用 CHROME_BIN
環境變數)。查看 [瀏覽器] 以獲取更多資訊。
前往擷取的瀏覽器並點擊「除錯」按鈕(或開啟 https://127.0.0.1:9876/debug.html
)並使用網路檢查器查看發生了什麼事。(您可能需要重新整理 debug.html 頁面,以便在網路檢查器開啟後生效。)
preprocessors
設定中的模式會通過 basePath
設定來解析。請參閱預處理器以獲取更多資訊。您也可以開啟除錯日誌記錄(在啟動 Karma 時使用 --log-level debug
),Karma 會顯示哪些檔案正在被預處理。
npm ERR! peerinvalid Peer
錯誤。我該如何修復? #嘗試先從您的 node_modules
中移除 karma
和 karma-*
模組(例如 rm -rf /usr/local/lib/node_modules/karma-*
),然後重新安裝 Karma。
確保 Karma 的分頁是作用中的。瀏覽器只會給非作用中的分頁最少的 CPU。
由於測試設定的複雜性,我們很少在沒有重現步驟的情況下修復錯誤。最好的方法是建立一個 github 專案,安裝所有組件並重現錯誤。