初期セットアップ
Jtest Plugin for Ant は、次の場所にある JAR ファイルとして Jtest に付属しています: <INSTALL_DIR>/integration/ant以下のいずれかの方法で、jtest-ant-plugin.jar をビルドの classpath に追加する必要があります。
- jar をユーザーの Ant ライブラリのディレクトリ
$HOME/.ant/libに配置する。 jar を Ant システムのインストール ライブラリのディレクトリ
$ANT_HOME/libに配置する。IDE、継続的インテグレーション、その他のツールは、組み込まれた Ant を使用する場合があることに注意してください。そのような場合、システムの$ANT_HOME/libディレクトリは使用されません。代わりに$HOME/.ant/libディレクトリに JAR ファイルを追加します。プロジェクトのビルドおよび解析のたびに次のパラメーターを Ant コマンドに追加する。
-lib $JTEST_HOME/integration/ant/jtest-ant-plugin.jar
ビルドのルート ビルドスクリプトで
taskdefタスクを使用する。<project name="project" default="sth" xmlns:jtest="antlib:com.parasoft.jtest.plugin.ant"> <taskdef uri="antlib:com.parasoft.jtest.plugin.ant" resource="com/parasoft/jtest/plugin/ant/antlib.xml" classpath="PATH/TO/JTEST/integration/ant/jtest-ant-plugin.jar"/> <!-- ... --> </project>
Jtest 実行の設定
Jtest の実行は、外部 XML ビルド ファイル、通常の Ant XML ビルド ファイル、またはコマンドラインで設定できます。専用のスイッチによって個々の設定を行います。
以下のサンプルは、jtest-ant-plugin.jar が Ant の lib ディレクトリのいずれかに配置されていることを前提としているため、コマンドラインのサンプル は-lib 引数を使用していません。
build.xml ファイルでの解析設定
Ant の build.xml ファイルを次のように変更して解析を設定できます。
<project name="Analyzed Project" default="build"
xmlns:jtest="antlib:com.parasoft.jtest.plugin.ant">
<!-- ... -->
<jtest:listener />
<!-- ... -->
<target name="jtest-analysis" depends="build">
<jtest:jtest>
<!-- jtest task configuration -->
</jtest:jtest>
</target>
<!-- ... -->
<target name="build">
<!-- analyzed project build target -->
</target>
</project>
静的カバレッジを収集するには、コンパイル タスクで debug="true" を設定する必要があります。
外部ビルド ファイルでの解析設定
jtest.xml ビルド ファイルを次のように変更して解析を設定できます。
<project name="Analyzed Project" default="build"
xmlns:jtest="antlib:com.parasoft.jtest.plugin.ant">
<property name="jtest.home" value="PATH/TO/JTEST" />
<jtest:listener />
<target name="jtest-analysis" depends="build">
<jtest:jtest>
<config>builtin://Recommended Rules</config>
<home>PATH/TO/JTEST</home>
<resource>Analyzed Project/src/**/*.java</resource>
<report>report</report>
<publish>true</publish>
</jtest:jtest>
</target>
<!-- ... -->
<target name="build">
<!-- ant task makes subproject to inherit properties (including jtest.home)
which may be used by instrument and instrument-test tasks -->
<ant target="build" dir="${basedir}" antfile="build.xml" />
</target>
</project>
優先順位
上記のサンプルは home パラメーターの設定方法を示しています。優先度が高い順につぎの方法があります。
- タスク タグ内で直接設定
- プロジェクト プロパティによる設定 (property タスク)
- JVM 環境変数 による設定。
-Dコマンド ライン オプションを使用して Jtest のオプションを設定できます。例: -Djtest.home=value。
注意: Jtest オプションよりビルトイン Ant オプションが優先されます。設定で Ant オプションが使用された場合、それらのオプションは Jtest-D で渡された値を上書きします。
XML ビルド ファイルでの詳細設定
次の設定は、jtest-ant-plugin.jar をロードし、ビルド ファイルからリスナーを開始します。
- Ant コマンド ラインに Jtest で解析を実行するための追加のオプションが必要ありません。
- -lib オプションを使用して jtest-ant-plugin.jar を渡したり、ファイルを $ANT_HOME/lib ディレクトリにデプロイする必要がありません。
<project name="Analyzed Project" default="jtest-analysis"
xmlns:jtest="antlib:com.parasoft.jtest.plugin.ant">
<!-- ... -->
<property name="jtest.home" value="PATH/TO/JTEST" />
<taskdef uri="antlib:com.parasoft.jtest.plugin.ant"
resource="com/parasoft/jtest/plugin/ant/antlib.xml"
classpath="${jtest.home}/integration/ant/jtest-ant-plugin.jar"/>
<!-- listener has to be specified after taskdef -->
<jtest:listener />
<!-- ... -->
<target name="build">
<!-- analyzed project build target -->
</target>
<!-- ... -->
<target name="jtest-analysis" depends="build">
<jtest:jtest/>
</target>
</project>
コマンド ラインでの解析の設定
-Dproperty オプション (-Dproperty.KEY=VALUE ) を使用すると、個々のエントリをコマンドラインで設定することができます。例:
ant jtest-analysis -Dproperty.console.verbosity.level=high
コンパイル データの手動カスタマイズ
Ant によるビルドはカスタマイズ性が高く、そのために、Jtest Plugin for Ant によって検出されたコンパイル データに実際と異なる点やエラーが含まれていることが、まれにあります。そのような問題は、Jtest のレポート でセットアップの問題として表示されたり、コンソールに出力される場合があります。エラーがあるコンパイル データが検出された場合、解析対象プロジェクトの build.xml ファイルで、コンパイル データを拡張またはオーバーライドできます。
次のサンプルは、コンパイル データのカスタマイズを有効にした解析 Ant ビルドを示しています。この設定は、検出されたコンパイル データを拡張し、追加のバイナリ パス要素を指定します。
Ant には、デフォルトではコンパイル id がありません。 プロジェクトが javac タスクを 2 回以上呼び出す場合、カスタム コンパイル データに対応する id を javac に 定義する必要があります。id が指定されていないカスタム コンパイル データ構成は、id パラメーターが指定されていない javac タスクから収集されたすべてのコンパイル データに適用されます。
<project name="Jtest Analysis" default="jtest-analysis"
xmlns:jtest="antlib:com.parasoft.jtest.plugin.ant">
<!-- properties etc. -->
<target name="build">
<javac id="main_compilation" srcdir="${src.dir}"
destdir="${target.dir}" source="1.5" debug="true"/>
<!-- copying additional jar into target.dir which cannot be detected by plugin -->
</target>
<target name="jtest-analysis" depends="build">
<jtest:jtest>
<config>builtin://Recommended Rules</config>
<home>${env.JTEST_HOME}</home>
<compilation>
<!-- will apply to every compilation data if ID not specified -->
<id>main_compilation</id>
<classpath>
<!-- filesets can be used in classpath and bootpath -->
<fileset dir="C:/some_directory/lib">
<include name="**/*.jar"/>
</fileset>
<path>some_jar_file.jar</path>
</classpath>
<binarypath>
<path>${additional.jar.file}</path>
<path>${other.jar.file}</path>
</binarypath>
</compilation>
</jtest:jtest>
</target>
</project>
すべてのプロジェクトのコンパイル データを変更する必要がある場合、
-Djtest.dataUpdate コマンド ライン オプションを使用できます。
Jtest プラグインによって自動的に検出されたコンパイル データをカスタマイズする方法の詳細については、「コンパイル データ モデル」を参照してください。