初期セットアップ
Parasoft Jtest と Maven を統合するには、以下の 2 つの settings.xml ファイルのうちどちらかの Maven 設定を変更します。
- $M2_HOME/conf/settings.xml - Maven のインストールディレクトリにあるグローバル設定
- $HOME/.m2/settings.xml - ユーザーのホームディレクトリの
.m2
フォルダーにあるユーザー設定
両方のファイルがある場合、ユーザー固有の設定がグローバル設定を上書きします。
Maven のインストール ディレクトリからグローバル設定ファイルを $HOME/.m2
ディレクトリにコピーしてテンプレートして使用し、下記の説明に従って変更することができます。
継続的インテグレーション サーバーや IDE などの一部のツールは、ツールに組み込まれた Maven を使用します。そのような場合、ユーザー設定が使用され、グローバル設定は無視されます。その場合、Jtest との統合に必要なすべての変更がユーザー設定ファイルに含まれるようにしてください。
settings.xml
ファイルで以下を設定します:
<pluginRepository>
- [INSTALL_DIR]\integration\maven にある Jtest 付属の Maven リポジトリへのローカルパスを指定します。<pluginGroups>
- コマンド ラインからのプラグインの呼び出しを容易にするため、適切なグループ ID、成果物、ゴールを指定します。jtest.home
プロパティ - コマンド ラインからのプラグインの呼び出しを容易にするため、Jtest インストール ディレクトリへのパスを指定します。
settings.xml ファイルは次のようになります:
<settings> <!-- ... --> <pluginGroups> <!-- ... --> <pluginGroup>com.parasoft.jtest</pluginGroup> </pluginGroups> <profiles> <!-- ... --> <profile> <id>jtest-settings-profile</id> <activation> <activeByDefault>true</activeByDefault> </activation> <properties> <jtest.home>PATH/TO/JTEST</jtest.home> </properties> <pluginRepositories> <pluginRepository> <id>jtest-local</id> <url>file://${jtest.home}/integration/maven</url> </pluginRepository> </pluginRepositories> </profile> </profiles> <mirrors> <!-- ... --> <!-- ワイルドカード (*) の比較によるミラーの防止 --> <mirror> <id>jtest-local-mirror</id> <mirrorOf>jtest-local</mirrorOf> <!-- mirrors タグはプロパティをサポートしない --> <url>file:/PATH/TO/JTEST/integration/maven</url> <!-- このタグのプロパティは解決されない --> </mirror> </mirrors> </settings>
Jtest 実行の設定
Jtest の解析およびテスト コードを設定する方法はいくつかあります。
- プロジェクトの pom.xml ファイルで直接プラグイン パラメーターを設定する
- pom.xml ファイルの <settings> または <settingsList> Jtest Maven Plugin パラメーター によって指定された
.properties
ファイル - Maven のコマンドライン オプション
-Djtest
または-Dproperty
- Jtest インストール ディレクトリまたは HOME ディレクトリにある
jtest.properties
ファイル (「設定の概要」を参照)
優先順位
jtest.property
ファイルで指定された設定の優先度は最低です。Maven での解析を設定する場合、次の優先順位が適用されます。
-Djtest.[Maven property name]
(例:-Djtest.settings="my.general.properties"
).pom.xml
ファイル-Dproperty.jtest.[property name]
(例:-Dproperty.jtest.license.use_network=true
)
-Djtest
および pom.xml の設定は
-Dproperty.jtest
で渡された設定を上書きします。
Maven プロパティとして指定された場合、-Djtest
は pom.xml
の設定を上書きします。設定値が直接 pom.xml
で指定されている場合、優先順位は最高であり、コマンド ラインの設定では上書きできません。たとえば、pom.xml
でユーザー プロパティ <config>${jtest.config}</config>
として指定された設定は -Djtest.config
で上書きされます。<config>builtin://Demo Configuration</config>
としてハードコードされている場合、上書きされません。
POM ファイルでの解析の設定
プロジェクトの pom.xml
ファイルで直接プラグイン パラメーターを指定することで、解析の設定を行うことができます。設定パラメーターの一覧は「Maven 用 Jtest ゴール リファレンス」を参照してください。
通常の Maven プラグインと同様に、または レポート プラグイン として Jtest Plugin for Maven を設定できます。
Disable inheritance
デフォルトでは、Jtest はルート プロジェクトのレポートを生成する際に各プロジェクト (モジュール) の解析を実行します。そのため、ネストされたモジュールごとに重複して解析が行われないよう、POM に <inherited>false</inherited>
タグを含めることが重要です。
pom.xml
ファイルでの通常のプラグイン設定は次のようになります。
<project> <!-- ... --> <build> <!-- ... --> <plugins> <!-- ... --> <plugin> <groupId>com.parasoft.jtest</groupId> <artifactId>jtest-maven-plugin</artifactId> <configuration> <settings>settings.properties</settings> <config>builtin://Recommended Rules</config> <resources> <resource>**/my/package/**/*.java</resource> <resource>**/*.xml</resource> </resources> <exclude>**/test/**</exclude> <report>report_dir</report> <publish>true</publish> </configuration> </plugin> </plugins> </build> </project>
サンプルに示されたすべてのプロパティはオプションです。
レポート プラグインとしてのJtest Plugin の設定
レポート プラグイン機能を有効にするには、<reporting> タグで Jtest Plugin を設定します。レポート プラグインとして使用した場合、解析後に生成される Maven Site の Project Reports セクションに Jtest レポートが追加されます。
pom.xml
ファイルでのレポート プラグインの設定は次のようになります。
<project> <!-- ... --> <build> <!-- ... --> </build> <reporting> <plugins> <!-- ... --> <plugin> <groupId>com.parasoft.jtest</groupId> <artifactId>jtest-maven-plugin</artifactId> <configuration> <config>builtin://Recommended Rules</config> <!-- ... --> </configuration> <inherited>false</inherited> <!-- IMPORTANT --> </plugin> </plugins> </reporting> </project>
次のコマンドを使用すると、モジュールをビルドし、サイト ドキュメント ページを生成できます
mvn install site
生成されたドキュメントは、ルート プロジェクトの $basedir/target/site ディレクトリにあります。
サイトの生成、ステージング、およびデプロイメントについては、Apache Maven Site Plugin ドキュメントの Usage を参照してください。
コマンド ラインでの解析の設定
-D コマンド ライン オプションを使用して適切な設定を渡すことで、Maven コマンド ラインで直接に解析を設定することができます。
-Djtest.[setting]
を使用すると、Jtest Plugin for Maven 固有の設定を指定できます。「Maven 用 Jtest ゴール リファレンス」を参照してください。例: mvn jtest:jtest -Djtest.config="builtin://Critical Rules"-Dproperty.[setting]
を使用すると、KEY=VALUE パターンで表される任意の Jtest 設定 (「設定リファレンス」を参照) を指定できます。例:mvn jtest:jtest -Dproperty.console.vebosity.level=high
設定が適用される順序については、「優先順位」を参照してください。
サンプル
サンプル 1. 次のコマンド ラインは、デフォルトの builtin://Recommended Rules
テスト コンフィギュレーションを使用して解析対象ビルドのすべてのモジュールを解析します。
mvn jtest:jtest
サンプル 2. 次の解析は、jtest.settingsList オプションで渡された 2 つの .properties ファイルを使用して設定されます。テスト コンフィギュレーションおよび解析スコープは、 jtest.config および jtest.resource によって渡されます。Jtest は "my.groupId:my-artifacId" プロジェクトのパターン "/src/main/java/my/package/**/*.java" に一致するファイルを解析します。
mvn jtest:jtest -Djtest.config="builtin://Critical Rules" -Djtest.resource="my.groupId:my-artifacId/src/main/java/my/package/**/*.java" -Djtest.settingsList="project.specific.properties","/etc/jtest/license.properties"
サンプル 3. 次の解析は、jtest.settings オプションで渡された .properties ファイルを使用して設定されます。テスト コンフィギュレーションは jtest.config によって渡されます。property.console.verbosity コマンド ライン オプションは、.properties ファイルで指定された console.verbosity オプションを上書きします。
mvn jtest:jtest -Djtest.config="builtin://Recommended Rules" -Djtest.settings="my.general.properties" -Dproperty.console.verbosity.level=high
POM ファイルでのコンパイル データの手動カスタマイズ
コンパイルを実行するプラグインが多数あることや、Maven によるビルドはカスタマイズ性が高いことが理由で、Jtest Plugin for Maven によって自動検出されたコンパイル データに実際と異なる点やエラーが含まれていることが、まれにあります。そのような問題は、Jtest のレポート で セットアップの問題 として表示される場合があります。
検出されたコンパイル データにエラーが含まれているのが確かである場合、解析対象モジュールの POM ファイルで、コンパイル データを拡張またはオーバーライドできます。
次のサンプルは、解析対象 Maven サブモジュールのカスタマイズされたコンパイル データです。この構成は、追加の classpath 要素を指定して、モジュールに新しいソース レベルを設定するよう拡張されています。コンパイル ID が指定されていないため、デフォルトのコンパイル ID が使用されます (maven-compiler-pluginの実行のデフォルト ID はdefault-compile です)。
<project> <!-- ... --> <build> <!-- ... --> <plugins> <!-- ... ${extra-classpath-element} を追加してデフォルト以外の、 コンパイラ プラグインを使用し、自動的に検出できないソース レベルに変更した構成 --> <plugin> <groupId>com.parasoft.jtest</groupId> <artifactId>jtest-maven-plugin</artifactId> <configuration> <compilation> <!-- ID が指定されていないため、Maven のデフォルト値: "default-compile" ID が使用されます --> <classpath> <path>${extra-classpath-element}</path> </classpath> <sourcelevel>1.6</sourcelevel> </compilation> </configuration> </plugin> </plugins> </build> </project>
すべてのプロジェクトのコンパイル データを変更する必要がある場合、
-Djtest.dataUpdate
コマンド ライン オプションを使用できます。
Jtest プラグインによって自動的に検出されたコンパイル データをカスタマイズする方法の詳細については、「コンパイル データ モデル」を参照してください。