初期セットアップ

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>

(info) すべてのプロジェクトのコンパイル データを変更する必要がある場合、-Djtest.dataUpdate コマンド ライン オプションを使用できます。

Jtest プラグインによって自動的に検出されたコンパイル データをカスタマイズする方法の詳細については、「コンパイル データ モデル」を参照してください。


  • No labels