コードカバレッジ
コードカバレッジは、生成されたレポートを使用して、メソッド、クラス、ファイル内の全体的なコードカバレッジを計算します。また、これらのエンティティにおけるカバレッジの不足に関連する問題についても報告します。
この機能は、次のリンターの Ultimate および Ultimate Plus ライセンスで利用できます。
リンター | コードカバレッジツール | サポートされているレポート形式 |
---|---|---|
IntelliJ IDEA コードカバレッジエージェント(英語)が推奨ツールです |
| |
| ||
| ||
| ||
| ||
| ||
|
|
使い方
欠落コードカバレッジの問題については、Qodana の事前定義されたしきい値は現在 50% に設定されています。
コードカバレッジでは、qodana.recommended
および qodana.starter
のデフォルトインスペクションプロファイルにすでに含まれているいくつかのインスペクションが使用されるため、これらを有効にする必要はありません。
リンター | インスペクション採用 |
---|---|
|
インスペクションが完了すると、Qodana レポート IDE および JetBrains IDE でレポートが利用可能になります。
コードカバレッジの計算
Qodana は、関数、メソッド、クラスステートメントが無視されるロジックを含むコード行の数に基づいてコードカバレッジを計算します。以下は、その仕組みに関するコメントを含むスニペットです。
プロジェクトを準備する
コードカバレッジツールを構成します。Jest(英語) を構成する際は、カバレッジレポート内のすべてのファイルがプロジェクト内の相対パスを持つ必要があることに注意してください。例: コードベースファイルが
<project-root>/src/
ディレクトリに含まれている場合、コードカバレッジレポートのファイルパスはsrc/<file-name>
である必要があります。Qodana をローカルで実行する場合は、コードカバレッジツールを使用してコードカバレッジレポートを生成します。レポートを Qodana が読み取れるディレクトリに保存します。GitHub パイプラインで Qodana を実行する場合は、コードカバレッジを実行するセクションに示すようにワークフローを構成します。
.NET 用 Qodana リンターの場合、テストプロジェクト用に coverlet.msbuild(英語) を構成します。
コードカバレッジを実行する
.NET 用 Qodana リンターを使用したコードカバレッジの実行について学習するには、このページの .NET 用 Qodana セクションに進んでください。
QODANA_TOKEN
変数を使用して、コードカバレッジレポートを含むディレクトリを /data/coverage
ディレクトリとプロジェクトトークンにマップします。Docker および Qodana CLI(英語) コマンドのサンプルを次に示します。
すべてのコードカバレッジ出力ファイルを <project-root-dir>/.qodana/code-coverage
ディレクトリに保存するパイプラインを作成します。GitHub アクション構成のさまざまな例は、GitHub(英語) Web サイトで見つけることができます。
以下は、JS 用 Qodana リンターのパイプライン構成例です。
すべてのコードカバレッジ出力ファイルを <project-root-dir>/coverage
ディレクトリに保存する GitLab CI/CD パイプラインを作成します。
これは、QODANA_TOKEN
変数を使用してプロジェクトトークンを含めます。script
ブロック内の --coverage-dir=$CI_PROJECT_DIR/coverage
は、コードカバレッジディレクトリを使用して Qodana を実行します。
.NET 用 Qodana
.NET 用 Qodana リンターの qodana.yaml
ファイル構成の例を次に示します。
ここでは、dotnet
オプションでソリューションファイルを構成します。
bootstrap
キーは、Qodana を実行する前にいくつかの手順を実行します。手順については表で説明します。
コマンドステップ | 説明 |
---|---|
| プロジェクトまたはソリューションを構築する |
| プロジェクトのテストファイルが含まれるディレクトリに移動します |
| |
| プロジェクト内でテストを実行し、次のことを行います。 |
| コードカバレッジを有効にする |
| コードカバレッジ結果を特定のディレクトリに収集します |
| コードカバレッジの出力形式を指定する |
.NET 用 Qodana リンターのコードカバレッジインスペクションの結果は、Qodana クラウドで利用できます。
フレッシュコード
フレッシュコードは、GitHub プルリクエストに含まれるコードです。Qodana は、フレッシュコードカバレッジを計算し、結果を表示できます。
フレッシュコード機能を有効にするには、GitHub ワークフローで PR モードを構成します。JavaScript の新しいコードをインスペクションするサンプルは次のとおりです。
レポートの概要
プロジェクトを準備して コードカバレッジを実行した後、Qodana クラウドまたは IDE を使用してコードカバレッジレポートを表示できます。
Qodana クラウド
コードカバレッジ統計は、コダナレポート UI の右上隅にあります。また、この機能で使用されたインスペクションも列挙します。
![Qodana クラウドのコードカバレッジ Code coverage in Qodana Cloud](https://resources.jetbrains.com/help/img/qodana/2024.1/code-coverage-report-qodana.png)
IDE
コードカバレッジレポートは、バージョン 2023.2 以降の IntelliJ IDEA、WebStorm、PhpStorm、PyCharm、GoLand IDE を使用して表示できます。この機能は、リンク後に Qodana クラウドから取得したレポート、またはローカルストレージからのレポートで利用できます。
Qodana クラウドからレポートを開く
IDE で、
に移動します。ダイアログで、 をクリックします。
これにより、認証ページにリダイレクトされます。
ダイアログで、リンクするプロジェクトを検索します。
IDE でカバレッジレポートを表示する
JetBrains IDE でローカルベースのコードカバレッジレポートを直接表示できます。
IDE で
に移動し、コードカバレッジレポートを含むファイルを開きます。![表示するカバレッジスイートの選択ダイアログ The Choose Coverage Suite to Display dialog](https://resources.jetbrains.com/help/img/qodana/2024.1/code-coverage-open-locally.png)
ツールウィンドウでは、テストカバレッジレポートを表示できます。このレポートには、実行されたコードまたはテストでカバーされたコードの割合が表示されます。
![カバレッジツールウィンドウ The Coverage tool window](https://resources.jetbrains.com/help/img/qodana/2024.1/code-coverage-coverage-window.png)
レポートの概要
IDE は、色のマーキングを使用してコードベースのテストカバレッジをハイライトします。デフォルトでは、緑色は特定の行がカバーされていることを意味し、赤色はカバーされていないコード行を意味します。
![カバレッジレポートの概要 The coverage report overview](https://resources.jetbrains.com/help/img/qodana/2024.1/code-coverage-report.png)
このレポートには、メソッド、関数、クラスのロジックを実装する行のカバレッジが表示されますが、関数、メソッド、クラス宣言のカバレッジは表示されません。以下の図は、コードカバレッジが 7 行目には適用されず、8 行目はカバーされていないことを示しています。
![特定のメソッドのコードカバレッジ Code coverage for a specific method](https://resources.jetbrains.com/help/img/qodana/2024.1/code-coverage-report-coverage.png)
関連ページ:
![](https://pleiades.io/icons/jetbrains_logo.png)
価格モデル
ニーズに応じて、次の表に示す適切なライセンスを選択できます。Community フリー孤立した問題の解決に最適 Ultimate 詳細については、サブスクリプションのオプションと価格を参照してくださいさまざまなビジネスタスクを解決するために設計されています。試用版をご利用いただけます。Ultimate Plus 詳細については、サブスクリプションのオプションと価格を参照してください Ultimate ライセンスと同じ機能がすべて含まれていますが、追加機能と無制限の履歴データストレージも含まれています。試用...
![](https://resources.jetbrains.com/help/img/qodana/2024.1/quickstart-run-in-ide-report-links.png)
クイックスタート
Qodana (2024.1) の現在のバージョンは、Java、Kotlin、Groovy、PHP、JavaScript、TypeScript、C#、Visual Basic、C、C++、Python、Golang プロジェクトを分析できるリンターを提供します。さまざまな機能を使用して、デフォルトのリンター構成を拡張することもできます。例として、このセクションでは、以下を使用して Qodana の操作をすぐに開始できる方法について説明します。JetBrains IDE、コマンドラインインターフェ...
![](https://resources.jetbrains.com/help/img/qodana/2024.1/gitlab-exposed-artifacts-expanded.png)
GitLab CI/CD
GitLab CI/CD は、さまざまな CI/CD 手法を使用するソフトウェア開発用のツールです。このセクションでは、GitLab CI/CD パイプライン内で QodanaDocker イメージを実行する方法について説明し、次のケースについて説明します。特定のブランチおよびマージリクエストのインスペクション、インスペクションレポートを Qodana クラウドに転送する、GitLab CI/CD ユーザーインターフェースでの Qodana レポートの公開、品質ゲートとベースライン機能の使用、コード品...
![](https://resources.jetbrains.com/help/img/qodana/2024.1/baseline-enabled.png)
ベースライン
ベースラインは、特定の Qodana 実行時に取得され、ファイルに含まれているコードベースの問題のスナップショットです。ベースライン機能を使用すると、現在のコードとベースラインの状態を比較し、新しい問題、変更されていない問題、解決された問題を確認できます。この機能は、Community、Ultimate、Ultimate Plus ライセンスとその試用版で利用可能なすべてのリンターでサポートされています。使い方:ベースラインなしで Qodana を実行すると、現在の実行時に検出された問題を確認...
![](https://resources.jetbrains.com/help/img/qodana/2024.1/flexinspect-how-it-works.png)
FlexInspect
IntelliJ IDEA のバージョン 2024.1 以降では、IntelliJ API と Kotlin を使用して、プロジェクト固有の独自のインスペクションを開発できます。次のことが可能です。ソースコードの PSI 表現にアクセスします。新しいインスペクションをオンザフライでデバッグします。期待どおりに動作しないコードフラグメントのハイライトなど、新しいカスタムインスペクションの動作を観察します。FlexInspect を使用すると、すべての IntelliJ IDEA および Qodana イ...