トラブルシューティング

Karmaは広範なテストセットを持っており、バグ対応に割ける時間は限られています。問題解決の糸口となるいくつかの提案を以下に示します。

npm auditによる脆弱性の確認 #

問題を修正するプルリクエストを作成してください。

多数の自動化サービス、他のプロジェクト、ユーザーから同様の報告を受けています。そのほとんどは軽微なものです。修正をご希望の場合は、プルリクエストを作成してください。オンラインユーザーに影響を与える重大な問題に対してのみ、直接対応します。

Karmaの問題をデバッグするには? #

多くの問題は、`debugログ` を読むか、`ブラウザの開発者ツール` を使用することで解決できます。

`--log-level debug` を使用して、特に設定に関するサーバーサイドの問題を調査してください。#

`DEBUG`ログには、最終的な「設定」のコピーが含まれています。プラグインは設定を変更できるため、適用した設定が期待した結果にならない場合があります。ログには、コア`karma`の行とプラグインからの行の両方が含まれています。ログの接頭辞を使用して、問題がKarmaプラグインに報告する必要があるかどうかを判断してください。

`--no-single-run` を使用して、特にテストファイルのグローバルエラーなどのブラウザサイドの問題を調査してください。#

`--no-single-run`オプションは、サーバーがURLを出力して待機するようにします。ブラウザでURLを開き、ブラウザの開発者ツールを使用して問題を調査してください。通常、URLを開いてから、右上の「DEBUG」リンクをクリックします。これにより、デバッグ用にコードが整理された新しいウィンドウが開きます。

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`環境変数を使用します)。詳しくは[ブラウザ]を参照してください。

ブラウザから奇妙なエラーが発生しています。どのようにデバッグできますか? #

キャプチャされたブラウザに移動し、「DEBUG」ボタンをクリックするか(または`http://localhost:9876/debug.html`を開く)、Webインスペクターを使用して何が起こっているかを確認してください。(Webインスペクターを開くと、debug.htmlページを更新する必要がある場合があります。)

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しか割り当てません。

注記

ここで問題の解決策が見つからない場合は、メーリングリストまたはStack Overflowでヘルプを求めることもできます。

本当に困っています。すべて試しました! #

テスト設定の複雑さのため、再現手順がないバグの修正はめったに行いません。最善のアプローチは、すべてのコンポーネントをインストールしてバグを再現するgithubプロジェクトを作成することです。