Karma
Karma(英語) は、クライアント側の JavaScript をテストするためのツールです。Karma は、実際のブラウザーで実行されているアプリケーションに対してテストを実行します。これにより、テスト結果の正確性と信頼性が保証されます。IntelliJ IDEA は Karma と統合されているため、IDE 内からテストのカバレッジを実行、デバッグ、監視できます。ツリービューでテスト結果を確認し、そこからテストソースに簡単に移動できます。テストステータスは、エディターのテストの横に表示され、テストをすばやく実行またはデバッグするオプションがあります。
始める前に
Node.js(英語) をダウンロードしてインストールします。
JetBrains リポジトリからプラグインをインストールする説明に従って、設定 / 環境設定 | プラグインページで Karma プラグインをインストールして有効にします。
Karma とプラグインのインストール
埋め込みターミナル(Alt+F12)で、以下のいずれかのコマンドを入力します。
Karma と必要なすべてのプラグインが package.json にすでに定義されている場合は
npm install
Karma と必要なプラグイン(たとえば、karma-jasmine または jasmine-core)を開発の依存関係(英語)としてインストールするには:
npm install --save-dev karma npm install --save-dev <required_karma_plugin> <another_required_karma_plugin>
Karma オフィシャル Web サイト(英語)の詳細を参照してください。
npm、pnpm、Yarn に従って、Node.js と NPM ページに karma パッケージをインストールすることもできます。
Karma 構成ファイルの生成
Karma テストは、対話モードで生成された karma.conf.js 構成ファイルに従って実行されます。すでにプロジェクトに karma.conf.js がある場合は、この手順をスキップしてください。Karma の設定の詳細については、Karma オフィシャル Web サイト(英語)を参照してください。
Karma 構成ファイルを作成するには
ターミナルを開き、オペレーティングシステムに応じて次のいずれかを入力して karma.conf.js 生成ウィザードを開始します。
macOS および Linux の場合:
./node_modules/karma/bin/karma initWindows の場合:
npm install -g karma-cli
karma init
ウィザードの質問に答えて、使用するテストフレームワークと自動的にキャプチャーされるブラウザーを指定します。
Karma ファイル: パターンマッチング(英語)も参照してください。
テストを実行
IntelliJ IDEA を使用すると、Karma テストをエディターから簡単に実行したり、実行 / デバッグ構成を作成してテストの一部または全部を実行することができます。
エディターから単一のテストを実行するには
左側のガターの
または
をクリックして、リストから実行 <テスト名> を選択します。
ガターのテストステータスアイコン
および
により、エディターでテストが成功したか失敗したかを確認することもできます。
Karma 実行構成を作成するには
実行 / デバッグ構成ダイアログ(メインメニューの )を開き、左側のペインで
をクリックして、リストから Karma を選択します。実行 / デバッグ構成: Karma ダイアログが開きます。
- 使用する Node.js インタープリターを指定してください。これはローカル Node.js インタープリターまたは Windows Subsystem for Linux の Node.js です。
オプションで、Node.js に渡す Node.js 固有のオプションパラメーターと環境変数(英語)を指定します。
karma
パッケージの場所と karma.conf.js へのパスを指定します。アプリケーションの作業ディレクトリを指定します。デフォルトでは、作業ディレクトリフィールドにプロジェクトのルートフォルダーが表示されます。この定義済み設定を変更するには、目的のフォルダーへのパスを指定するか、リストから以前に使用したフォルダーを選択します。
必要に応じて、Karma に渡すコマンドラインオプションを指定して、karma.conf.js 構成ファイルのデフォルト設定を上書きします。
例: Headless Chrome でテストを実行またはデバッグするには、Karma オプションフィールドに
--browsers ChromeHeadless
と入力します。詳細はヘッドレス Chrome による自動テスト(英語)を参照してください。使用可能なすべての CLI オプションを表示するには、ターミナル Alt+F12 に
karma start --help
と入力します。
実行構成を介してテストを実行するには
メインツールバーのリストから Karma 実行 / デバッグ構成を選択し、リストの右側にある
をクリックします。
Karma テストサーバーは自動的に起動します。実行ツールウィンドウの Karma サーバータブで、テストサーバーからのメッセージを表示および分析します。
実行ツールウィンドウのテストランナータブのテスト実行の監視。
失敗したテストを再実行する
テストランナータブで、ツールバーの
をクリックします。IntelliJ IDEA は前のセッションで失敗したすべてのテストを実行します。
特定の失敗したテストを再実行するには、そのコンテキストメニューで
を選択します。
ナビゲーション
IntelliJ IDEA を使用すると、ファイルと関連テストファイルの間、またはテストランナータブのテスト結果からテストにジャンプできます。
テストとそのサブジェクト間、またはその逆にジャンプするには、エディターでファイルを開き、コンテキストメニューから
または を選択するか、Ctrl+Shift+T を押します。テスト結果からテスト定義にジャンプするには、テストランナータブでテスト名を 2 回クリックするか、コンテキストメニューから を選択します。エディターでテストファイルが開き、カーソルがテスト定義に置かれます。
失敗したテストの場合、IntelliJ IDEA はスタックトレースからテストの失敗ラインに移動します。正確な行がスタックトレースにない場合は、テスト定義に移動します。
デバッグテスト
IntelliJ IDEA を使用すると、エディターから Karma テストのデバッグをすぐに開始することも、テストの一部または全部をデバッグするための実行 / デバッグ構成を作成することもできます。
エディターから単一のテストのデバッグを開始するには
左側のガターの
または
をクリックして、リストからデバッグ <テスト名> を選択します。
実行 / デバッグ構成を介してテストデバッグを開始するには
上記の説明に従って、Karma 実行 / デバッグ構成を作成します。
メインツールバーのリストから Karma 実行 / デバッグ構成を選択し、リストの右側にある
をクリックします。
開いたデバッグツールウィンドウでは、通常どおり進む: テストをステップ実行、停止し、再開し、テストの実行を中断したときにテストを検討するように、と。
コードカバレッジの監視
IntelliJ IDEA を使用すると、コードのどの程度が Karma テストでカバーされている(英語)かを監視することもできます。IntelliJ IDEA は、この統計を専用のツールウィンドウに表示し、カバーされた行とカバーされていない行をエディターで視覚的にマークします。カバレッジを監視するには、karma-coverage パッケージをインストールし、karma.conf.js を更新する必要があります。
karma-coverage をインストールするには
埋め込みターミナル(Alt+F12)に次のように入力します。
npm install --save-dev karma-coverage
karma-coverage 定義を構成ファイルに追加するには
エディターで karma.conf.js を開きます。
reporters
定義を見つけ、coverage
を次の形式の値のリストに追加します。reporters: ['progress', 'coverage']preprocessors
定義を追加し、カバレッジスコープを次の形式で指定します。preprocessors: {'**/*.js': ['coverage']}
カバレッジでテストを開始する
上記の説明に従って、Karma 実行 / デバッグ構成を作成します。
メインツールバーのリストから Karma 実行 / デバッグ構成を選択し、リストの右側にある
をクリックします。
または、エディターのテストアイコンを使用して、特定のスイートまたはカバレッジ付きのテストをすばやく実行します。
カバレッジツールウィンドウでコードカバレッジを監視します。
Karma テストが実行されるたびに、カバレッジレポートが実際にディスク上に生成されます。カバレッジレポートの形式は、次のように設定ファイルで設定できます。
// karma.conf.js module.exports = function(config) { config.set({ ... // optionally, configure the reporter coverageReporter: { type : 'html', dir : 'coverage/' } ... });};次の
type
値を使用できます。html
はアノテーション付きソースコードを含む一連の HTML ファイルを生成します。lcovonly
は lcov.info ファイルを作成します。lcov
は HTML + .lcov ファイルを生成します。このフォーマットはデフォルトで適用されます。cobertura
は、Hudson と簡単に統合するための cobertura-coverage.xml ファイルを生成します。text-summary
は、通常はコンソールに、カバレッジの簡潔なテキスト要約を生成します。text
は、すべてのファイルのカバレッジを持つ詳細なテキストテーブルを生成します。
関連ページ:

プラグインを管理する
このサイトのメニューやアクション名表記は日本語です。IntelliJ IDEA を日本語化するには、日本語言語パックのインストールを参照してください。プラグインは以下に示すように IntelliJ IDEA のコア機能を拡張します。バージョン管理システム、アプリケーションサーバー、およびその他のツールとの統合を提供する、さまざまな言語とフレームワークのコーディング支援サポートを追加する、ショートカットヒント、ライブプレビュー、ファイルウォッチャーなどで生産性を向上、コーディング演習と検証で新しい...

npm、pnpm、Yarn
IntelliJ IDEA は npm、Yarn、Yarn 2、pnpm と統合されているため、IDE 内から再利用可能なコードのパッケージをインストール、検索、更新、削除できます。Node.js と NPM ページは、パッケージを管理するための専用 UI を提供します。もちろん、組み込みのターミナルのコマンドラインからも実行できます。IntelliJ IDEA では、npm、Yarn、pnpm スクリプトを実行およびデバッグすることもできます。IntelliJ IDEA は、package.jso...

Node.js および NPM
このページは、プラグインの管理に従って、設定 / 環境設定 | プラグインページのインストール済みタブで Node.js バンドルプラグインが有効になっている場合にのみ表示されます。Node.js の操作方法については、Node.js アプリケーションの開発セクションを参照してください。次の Node.js バージョンが IntelliJ IDEA 2020.3 でサポートされています。Node.js 10、Node.js 12、Node.js 14、Node.js 15、サポートされている Node...

Node.js
Node.js は、ブラウザーの外部、たとえばサーバーやコマンドラインで JavaScript を実行するための軽量なランタイム環境です。IntelliJ IDEA は Node.js と統合し、アプリケーションの構成、編集、実行、デバッグ、テスト、プロファイリング、メンテナンスを支援します。Node.js がアプリケーションのローカルランタイムとして、または npm パッケージの管理、JavaScript リンターの実行、ツールのビルド、フレームワークのテストなどにのみ必要な場合は、Node.j...

デバッグツールウィンドウ
デバッガーセッションを開始すると、デバッグツールウィンドウが表示されます。このウィンドウを使用して、デバッガーセッションを制御し、プログラムデータ(フレーム、スレッド、変数など)を表示して分析し、さまざまなデバッガーアクションを実行します。これは、デバッグツールウィンドウの概要です。ツールウィンドウの使用に関する一般的な手順については、ツールウィンドウを参照してください。デフォルトでは、プログラムがブレークポイントに到達するとデバッグツールウィンドウが開き、セッションが終了しても非表示にはなりま...

デバッガーセッションを開始する
デバッガーセッションの開始は、通常モードでのプログラムと非常に似ています。デバッガーはバックグラウンドで接続されているため、デバッガーセッションを開始するために特別な設定を行う必要はありません。IntelliJ IDEA からプログラムを実行できる場合は、同じ構成を使用してプログラムをデバッグすることもできます。このトピックは、実行 / デバッグ構成の理解に依存しています。IntelliJ IDEA は追加のセットアップなしで単純なアプリケーションをデバッグする方法を提供しますが、デバッガーを効...