コードカバレッジ
コードカバレッジは、生成されたレポートを使用して、メソッド、クラス、ファイル内の全体的なコードカバレッジを計算します。また、これらのエンティティのカバレッジ不足に関連する問題についてもレポートします。
この機能は、次のリンターの Ultimate および Ultimate Plus ライセンスで利用できます。
リンター | コードカバレッジツール | サポートされているレポートファイル拡張子 |
|---|---|---|
IntelliJ IDEA コードカバレッジエージェント(英語)が推奨ツールです |
| |
| ||
| ||
| ||
| ||
| ||
|
|
コードカバレッジの仕組み
欠落コードカバレッジの問題については、Qodana の事前定義されたしきい値は現在 50% に設定されています。
コードカバレッジでは、qodana.recommended および qodana.starter のデフォルトのインスペクションプロファイルにすでに含まれているいくつかのインスペクションが使用されるため、有効にする必要はありません。
リンター | インスペクション採用 |
|---|---|
分析が完了すると、Qodana レポートおよび JetBrains IDE でレポートが利用できるようになります。
コードカバレッジの計算
Qodana は、関数、メソッド、クラスのステートメントを無視して、ロジックを含むコード行の数に基づいてコードカバレッジを計算します。これがどのように機能するかについてのコメントを含むスニペットは次のとおりです。
始める前に
コードカバレッジツールを設定します。例: Jest(英語) コードカバレッジレポートには、プロジェクトルートからの相対パスを含める必要があります。コードベースファイルが
<project-root>/src/ディレクトリに含まれている場合は、レポートにsrc/<file-name>ファイルパスを含める必要があります。コードカバレッジツールを使用してカバレッジレポートを生成します。レポートは
<project-root>/.qodana/code-coverageディレクトリに保存されます。boostrapキーを使用してカバレッジレポートファイルをコピーできます。例:boostrap: copy path/to/coverage/file <project-root>/.qodana/code-coverage<project-root>/.qodana/code-coverageディレクトリをオーバーライドする方法については、コードカバレッジを実行するの章の推奨事項を参照してください。複数のリポジトリを含むモノレポプロジェクトの場合、このディレクトリは各リポジトリに作成する必要があります。
プロジェクトを準備します。モノレポプロジェクトがある場合は、各リポジトリの Qodana 構成を個別の
qodana.yamlファイルに保存します。これらのファイルをリポジトリディレクトリに配置するか、カスタム名を付けてプロジェクトのルートディレクトリに保存することができます。.NET 用 Qodana リンターの場合は、
coverlet.msbuild(英語) およびcoverlet.collector(英語) パッケージをテストプロジェクトに追加します。また、.NET 用 Qodana リンターの場合は、コードカバレッジレポートに生成されたファイルに関する情報が含まれているかどうかを確認します。
コードカバレッジを実行する
.NET 用 Qodana リンターを使用してコードカバレッジを実行する方法の詳細については、このページの .NET 用 Qodana セクションに進んでください。
コードカバレッジレポートを含むディレクトリを、QODANA_TOKEN 変数を使用して /data/coverage ディレクトリとプロジェクトトークンにマップします。Docker および Qodana CLI(英語) コマンドのサンプルを次に示します。
モノレポプロジェクトがある場合は、 -i <path-relative-to-project-root> オプションを使用してリポジトリディレクトリを指定します。Qodana の構成ファイルをカスタム名で保存した場合は、 --config <path-relative-to-project-root> オプションを使用します。デフォルトのコードカバレッジレポートディレクトリをオーバーライドするには、 --coverage-dir <path-relative-to-project-root> オプションを使用します。
すべてのコードカバレッジ出力ファイルを <project-root-dir>/.qodana/code-coverage ディレクトリに保存するパイプラインを作成します。GitHub Actions 構成のさまざまな例は、GitHub(英語) Web サイトで見つけることができます。
以下は、リポジトリの JS/jest ディレクトリで実行されている JS 用 Qodana リンターのパイプライン構成例です。
モノレポプロジェクトがあり、カスタム名で Qodana の構成ファイルを保存している場合は、args ブロックで --config,<path-relative-to-project-root> オプションを使用します。デフォルトのコードカバレッジレポートディレクトリをオーバーライドするには、 --coverage-dir,<path-relative-to-project-root> オプションを使用します。
--coverage-dir オプションを使用して、.qodana/coverage ディレクトリから生成されたすべてのコードカバレッジ出力ファイルを読み取る GitLab CI/CD パイプラインを作成します。
モノレポプロジェクトがあり、カスタム名で Qodana の構成ファイルを保存している場合は、args に --config,<path-relative-to-project-root> オプションを追加します。
--coverage-dir オプションを使用して、.qodana/coverage ディレクトリから生成されたすべてのコードカバレッジ出力ファイルを読み取るパイプラインを作成します。
この構成では、args: ブロックはコードカバレッジ分析の結果を /data/coverage ディレクトリにマップします。
フィールドを使用して、コードカバレッジ分析の結果を /data/coverage ディレクトリにマップします。例: これは $(System.DefaultWorkingDirectory)/<ProjectPath> ディレクトリになります。

.NET 用 Qodana
.NET 用 Qodana リンターの qodana.yaml ファイル構成の例を次に示します。
ここでは、dotnet オプションでソリューションファイルを構成します。
bootstrap キーは、Qodana を実行する前にいくつかのステップを実行します。
コマンドステップ | 説明 |
|---|---|
| プロジェクトまたはソリューションを構築する |
| プロジェクトのテストファイルが含まれるディレクトリに移動します |
| |
| プロジェクト内でテストを実行し、次のことを行います。 |
| コードカバレッジを有効にする |
| コードカバレッジ結果を特定のディレクトリに収集します |
| コードカバレッジの出力形式を指定する |
コードカバレッジレポートファイルに生成されたファイルに関する情報が含まれている場合は、次の行の 1 つまたは両方を dotnet test ... 行に追加して、この情報を除外します。
これらの行の説明は次のとおりです。
コマンドステップ | 説明 |
|---|---|
| 特定の属性でマークされたメソッドまたはクラスを除外する |
| パターンに一致するファイルを除外します (例: |
.NET 用 Qodana リンターのコードカバレッジ分析結果は、Qodana クラウドで入手できます。
フレッシュコード
フレッシュコードとは、GitHub プルリクエストに含まれるコードです。Qodana はフレッシュコードカバレッジを計算し、結果を表示できます。
フレッシュコード機能を有効にするには、GitHub ワークフローで PR モードを構成します。
以下は、JavaScript の最新のコードをインスペクションするためのサンプルです。
レポートの概要
プロジェクトを準備して コードカバレッジを実行した後、Qodana クラウドまたは IDE を使用してコードカバレッジレポートを表示できます。
Qodana クラウド
コードカバレッジ統計は、コダナレポート UI の右上隅に表示されます。また、機能で使用されるインスペクションも一覧表示されます。

IDE
コードカバレッジレポートは、バージョン 2023.2 以降の IntelliJ IDEA、WebStorm、PhpStorm、PyCharm、GoLand IDE を使用して表示できます。この機能は、リンク後に Qodana クラウドから取得したレポート、またはローカルストレージからのレポートで利用できます。
Qodana クラウドからレポートを開く
IDE で、に移動します。

ダイアログで、をクリックします。

これにより、認証ページにリダイレクトされます。
ダイアログで、リンクするプロジェクトを検索します。

IDE でカバレッジレポートを表示する
JetBrains IDE を使用して、ローカルベースのコードカバレッジレポートを表示できます。
IDE でに移動し、コードカバレッジレポートを含むファイルを開きます。

ツールウィンドウでは、テストカバレッジレポートを表示できます。このレポートには、実行されたコードまたはテストでカバーされたコードの割合が表示されます。

レポートの概要
IDE は、色のマーキングを使用してコードベースのテストカバレッジをハイライトします。デフォルトでは、緑色は特定の行がカバーされていることを意味し、赤色はカバーされていないコード行を意味します。

このレポートには、メソッド、関数、クラスのロジックを実装する行のカバレッジが表示されますが、関数、メソッド、クラス宣言のカバレッジは表示されません。以下の図は、コードカバレッジが 7 行目には適用されず、8 行目はカバーされていないことを示しています。

関連ページ:
価格モデル
ニーズに応じて、次の表に示す適切なライセンスを選択できます。Community フリー孤立した問題の解決に最適 Ultimate 詳細については、サブスクリプションのオプションと価格を参照してくださいさまざまなビジネスタスクを解決するために設計されています。試用版をご利用いただけます。Ultimate Plus 詳細については、サブスクリプションのオプションと価格を参照してください Ultimate ライセンスと同じ機能がすべて含まれていますが、追加機能と無制限の履歴データストレージも含まれています。試用...
Java、Kotlin、Groovy
すべての Qodana リンターは、特定のプログラミング言語とフレームワーク用に設計された JetBrains IDE に基づいています。Java プロジェクトを分析するには、次のリンターを使用できます。リンター名 Docker イメージベースとなるもの IntelliJ IDEA Ultimate ライセンスに基づいて利用可能 Ultimate および Ultimate Plus ライセンス発送方法ネイティブソリューションと Docker イメージサポートされる言語 Java、Kotlin、Groovy、...
JavaScript and TypeScript
すべての Qodana リンターは、特定のプログラミング言語とフレームワーク向けに設計された JetBrains IDE に基づいています。JavaScript および TypeScript プロジェクトを解析するには、以下の特徴を持つ Qodana for JS リンターを使用できます。リンター名 Docker イメージベースとなるもの WebStorm ライセンスに基づいて利用可能 Ultimate および Ultimate Plus ライセンス発送方法ネイティブソリューションと Docker イメー...
PHP
すべての Qodana リンターは、特定のプログラミング言語とフレームワーク向けに設計された JetBrains IDE に基づいています。PHP プロジェクトを解析するには、以下の特徴を持つ Qodana for PHP リンターを使用できます。リンター名 Docker イメージベースとなるもの PhpStorm ライセンスに基づいて利用可能 Ultimate および Ultimate Plus ライセンス発送方法ネイティブソリューションと Docker イメージサポートされる言語 PHP、JavaScr...
.NET
すべての Qodana リンターは、特定のプログラミング言語とフレームワーク用に設計された JetBrains IDE に基づいています。.NET プロジェクトを分析するには、次の Qodana リンターを使用できます。リンター名 Docker イメージ * ベースとなるもの JetBrains Rider ライセンスに基づいて利用可能 Ultimate および Ultimate Plus ライセンス発送方法ネイティブソリューションと Docker イメージサポートされる言語 C#、C/C++、VB.NET、J...
Python
すべての Qodana リンターは、特定のプログラミング言語とフレームワーク用に設計された JetBrains IDE に基づいています。Python プロジェクトを分析するには、次のリンターを使用できます。リンター名 Docker イメージベースとなるもの PyCharm Professional ライセンスに基づいて利用可能 Ultimate および Ultimate Plus ライセンス発送方法ネイティブソリューションと Docker イメージサポートされる言語 Python、JavaScript、T...