初期セットアップ
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> <pluginGroup>com.parasoft.jtest.tia</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> <!-- ... --> <!-- prevention against mirrors with wildcard (*) matching --> <mirror> <id>jtest-local-mirror</id> <mirrorOf>jtest-local</mirrorOf> <!-- mirrors tag does not support properties --> <url>file://PATH/TO/JTEST/integration/maven</url> <!-- properties are not resolved in this tag --> </mirror> </mirrors> </settings>
Jtest 実行の設定
Jtest の解析およびテスト コードを設定する方法はいくつかあります。
- プロジェクトの
pom.xml
ファイルで直接プラグイン パラメーターを設定する pom.xml
ファイルの<settings>
または<settingsList>
Plugin パラメーター によって指定された.properties
ファイル- Maven のコマンドライン オプション
-Djtest
または-Dproperty
- Jtest インストール ディレクトリまたは HOME ディレクトリにある
jtestcli.properties
ファイル (「設定の概要」を参照)
コマンドラインで直接 jtest
ゴールの実行を指定するか、POM ファイルで指定することを推奨します。
優先順位
Maven での解析を設定し、ユーザー プロパティを変数 (${...}
) として指定した場合、次の優先順位が適用されます。
-Djtest.[Maven property name]
(例:-Djtest.settings="my.general.properties"
)pom.xml
ファイル-Dproperty.[property name]
(例-Dproperty.
dtp.url=https://server1.mycompany.com:8443
)
プロパティをハードコーディングした場合 (pom.xml
で実値として指定した場合)、優先順位は最高であり、コマンド ラインの設定では上書きできません。結果として次の優先順位が適用されます。
pom.xml
ファイル-Djtest.[Maven property name]
(例:-Djtest.settings="my.general.properties"
)-Dproperty.[property name]
(例-Dproperty.
dtp.url=https://server1.mycompany.com:8443
)
たとえば、pom.xml
でユーザー プロパティ <config>${jtest.config}</config>
として指定されたテスト コンフィギュレーションは、-Djtest.config
で上書きできます。しかし、<config>builtin://Demo Configuration</config>
としてハードコーディングされている場合は上書きできません。
jtestcli.properties
ファイルで指定された設定の優先順位は常に最低です。
POM ファイルでの解析の設定
プロジェクトの pom.xml
ファイルで直接プラグイン パラメーターを指定することで、解析の設定を行うことができます。設定パラメーターの一覧は「Maven 用 Jtest ゴール リファレンス」を参照してください。
pom.xml
ファイルでのプラグインの設定は次のようになります。
<project> <!-- ... --> <build> <!-- ... --> <plugins> <!-- ... --> <plugin> <groupId>com.parasoft.jtest</groupId> <artifactId>jtest-maven-plugin</artifactId> <version>2020.1.0</version> <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 はルート プロジェクトのレポートを生成する際に各プロジェクト (モジュール) の解析を実行します。そのため、ネストされたモジュールごとに重複して解析が行われないよう、POM に <inherited>false</inherited>
タグを含めることが重要です。
コマンド ラインでの解析の設定
-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> <!-- ... configuration with non default compiler plugin appending ${extra-classpath-element} and changing sourcelevel which cannot be detected automatically --> <plugin> <groupId>com.parasoft.jtest</groupId> <artifactId>jtest-maven-plugin</artifactId> <version>2020.1.0</version> <configuration> <compilation> <!-- no id specified so Maven default: "default-compile" id will be used --> <classpath> <path>${extra-classpath-element}</path> </classpath> <sourcelevel>1.6</sourcelevel> </compilation> </configuration> </plugin> </plugins> </build> </project>
すべてのプロジェクトのコンパイル データを変更する必要がある場合、-Djtest.dataUpdate
コマンド ライン オプションを使用できます。
Jtest プラグインによって自動的に検出されたコンパイル データをカスタマイズする方法の詳細については、「コンパイル データ モデル」を参照してください。