EclipseおよびIntelliJ IDEAのJava静的解析ツール

EclipseおよびIntelliJ IDEAのJava静的分析ツール

1. 概要

introduction to FindBugsでは、静的分析ツールとしてのFindBugsの機能と、EclipseやIntelliJIdeaなどのIDEに直接統合する方法について説明しました。

この記事では、Javaの代替静的分析ツールのいくつかと、これらがEclipseおよびIntelliJIDEAとどのように統合されるかについて説明します。

2. PMD

PMDから始めましょう。

この成熟した非常に確立されたツールは、発生する可能性のあるバグ、次善のコード、およびその他の悪い習慣についてソースコードを分析します。また、分析するコードベースの循環的複雑度などのより高度なメトリックも調べます。

2.1. Eclipseとの統合

PMDプラグインは、Eclipse Marketplaceから直接インストールできます。 プラグインは手動でダウンロードすることもできますhere。 インストールしたら、IDE自体から直接PMDチェックを実行できます。

image

PMDは、プロジェクトレベルまたは個々のクラスレベルで実行できることに注意してください。

結果を以下に示します-重大度の昇順で「警告」から「ブロッカー」までの範囲の異なるレベルの結果の異なる色で:

image

各エントリの詳細を調べるには、右クリックしてコンテキストメニューから[詳細を表示]を選択します。 Eclipseは、問題の簡単な説明と解決方法を表示します。

image image

PMDスキャンの構成を変更することもできます。メニューの[ウィンドウ]→[設定]→[PMD]で、構成ページを起動できます。 ここで、スキャンパラメータ、ルールセット、結果表示設定などを構成できます。

プロジェクトの特定のルールを非アクティブ化する必要がある場合、スキャンからそれらを単に削除できます。

image

2.2. IntelliJとの統合

もちろん、IntelliJにも同様のPMDプラグインがあり、JetBrains plugin storeからダウンロードしてインストールできます。

IDEで同様にプラグインを実行できます。スキャンする必要があるソースを右クリックし、コンテキストメニューからPMDスキャンを選択します。

image

結果はすぐに表示されますが、Eclipseとは異なり、説明を開こうとすると、情報を検索するための公開Webページでブラウザーが開きます。

image

設定ページからPMDプラグインの動作を設定するには、[ファイル]→[設定]→[その他の設定]→[PMD]に移動して、構成ページを表示します。 設定ページから、独自のテストルールを含むカスタムルールセットをロードして、ルールセットを構成できます。

3. JaCoCo

次に進む– JaCoCoはテストカバレッジツールです。コードベースでユニットテストカバレッジを追跡するために使用されます。 簡単に言えば、ツールは、ライン、クラス、メソッドなどの多くの戦略を使用してカバレッジを計算します。

3.1. Eclipseとの統合

JaCoCoはfrom the marketplaceに直接インストールできます。 インストールリンクは、利用可能な公式サイトhereでもホストされています。

image

このツールは、プロジェクトレベルから個々のメソッドレベルまで実行できます。 Eclipseプラグインは、さまざまなカラースキームを使用して、コードのどの部分がテストケースでカバーされ、何がカバーされないかを特定します。

image

このメソッドは、提供された2つの整数パラメーターを分割し、結果を返します。 2番目のパラメーターがゼロの場合、整数データ型の最大値を返します。

このテストケースでは、2番目のパラメータがゼロであるシナリオのみをテストしています。

image

この場合、6行目が黄色になっていることがわかります。 「if」条件の1つのブランチのみがテストされ、単純なテストで実行されます。 したがって、完全にテストされておらず、黄色でマークされていません。

さらに、行7の色は緑色です。つまり、完全にテストされています。 最後に、行9は赤色で強調表示されています。つまり、この行は単体テストではまったくテストされていません。

We can see a summary of the test coverageは、クラスレベルおよびパッケージレベルの単体テストでカバーされるコードの量を表示します。

image

3.2. IntelliJIDEAとの統合

JaCoCoはデフォルトで最新のIntelliJIDEAディストリビューションにバンドルされているため、プラグインを個別にインストールする必要はありません。

単体テストを実行するときに、使用するカバレッジランナーを選択できます。 プロジェクトレベルまたはクラスレベルでテストケースを実行できます。

image

Eclipseと同様に、JaCoCoはカバレッジに異なる配色を使用して結果を表示します。

image

テストレベルの概要を見ると、クラスレベルとパッケージレベルのユニットテストでカバーされているコードの量が表示されます。

image

4. コベルチュラ

最後に、Coberturaについて言及する価値があります。これは、コードベースの単体テストカバレッジを追跡するためにも同様に使用されます。

Eclipseの最新バージョンは、執筆時点ではCoberturaプラグインをサポートしていません。プラグインは以前のEclipseバージョンで動作します。

同様に、IntelliJ IDEAには、Coberturaカバレッジを実行できる公式プラグインがありません。

5. 結論

広く使用されている3つの静的解析ツールについて、EclipseおよびIntelliJ IDEAとの統合を検討しました。 FindBugは以前のintroduction to FindBugsでカバーされていました。

このチュートリアルのソースコードはthe GitHub projectにあります。これはMavenベースのプロジェクトであるため、そのままインポートして実行するのは簡単です。