Jtestを使用してJavaプロジェクトの解析およびテストを実行するための準備を行います。
Ant 起動確認
「ant -version」コマンドを実行して、Antが実行可能かを確認します。
>ant -version Apache Ant(TM) version 1.9.9 compiled on February 2 2017 |
Ant のバージョン情報が表示されない場合は、ご利用環境の環境設定を見直してください。
サンプルプロジェクトのビルド
demo プロジェクトがビルドできることを確認します。
demoプロジェクトディレクトリに移動し、「ant compile」コマンドを実行してdemoプロジェクトをビルドします。
demo>ant compile
Buildfile: C:\jtest\examples\demo\build.xml
compile:[mkdir] Created dir: C:\jtest\examples\demo\ant-target
[javac] C:\jtest\exmaples\demo\build.xml:23: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[javac] Compiling 65 source files to C:\jtest\examples\demo\ant-targetBUILD SUCCESSFUL
Total time: 2 seconds- 「BUILD SUCCESSFUL」 が出力されビルドが成功したことを確認します。
ビルドエラーが発生する場合は、ご利用環境の環境設定を見直してください。
Jtest 解析用ビルドスクリプト
Jtestを適切に実行するためにプロジェクトのbuild.xmlを変更することも可能ですが、その代わりにJtest用のビルドファイルを作成することができます。
これにより、プロジェクトの成果物であるbuild.xmlに影響を与えることなくJtestの解析が実行可能になります。
Jtest用のビルドファイルのサンプルとして、demoプロジェクトディレクトリに jtest.xml があります。このチュートリアルでは jtest.xmlを利用します。
demoプロジェクトディレクトリに存在するjtest.xmlでは次の5個のビルドターゲットを定義しています。
- jtest-analysis
Jtestを使用して静的解析(コーディング規約チェック、フロー解析、メトリクスの計測)を実行します。実行にはビルトインテストコンフィギュレーション「Recommended Rules」が使用されます。
実行の結果はプロジェクトディレクトリのparasoft/jtest/reportディレクトリに出力されます。
testディレクトリ以下に保存されているソースコードは、解析の対象外となります。 - jtest-sae
Jtestを使用して静的解析(コーディング規約チェック、フロー解析、メトリクスの計測)を実行します。
実行にはビルトインテストコンフィギュレーション「Recommended Rules」が使用されます。実行の結果はプロジェクトディレクトリ直下のreport-saeディレクトリに出力されます。
testディレクトリ以下に保存されているソースコードは、静的解析およびメトリクスの計測の対象外となります。 - jtest-utc
単体テストおよびカバレッジの計測を実行します。実行にはJtestのビルトインのテストコンフィギュレーション「Unit Tests」が使用されます。
実行の結果はreport-utcディレクトリに出力されます。testディレクトリ以下に保存されているソースコードは、単体テストの対象外となります。 - clean
プロジェクトをクリーンします。プロジェクトのbuild.xmlのcleanターゲットを実行します。 - build
プロジェクトをビルドします。プロジェクトのbuild.xmlのbuildターゲットを実行します。
テストコンフィギュレーション
テストコンフィギュレーションは、Jtest でどのようにコードを解析するかを定義したものです。
OWASP への準拠、メトリクスの計測、単体テストの実行などテストの目的に合わせて解析に利用するルールの設定や、解析の範囲、実行時のパラメーターを定義します。
「jtestcli -listconfigs」コマンドを実行すると、現在使用可能なテストコンフィギュレーションの一覧を表示できます。
>jtestcli -listconfigs Parasoft Jtest 10.4.0 (201807180918) – Copyright (C) 2018 Parasoft Corporation [Jtest] ライセンス: マシン ID WIN32-5bdc3b59 [Jtest] 利用可能なテスト コンフィギュレーション: 27 [Jtest] builtin://Calculate Application Coverage [Jtest] builtin://CERT for Java [Jtest] builtin://Code Smells [Jtest] builtin://Critical Rules [Jtest] builtin://CWE-SANS Top 25 2011 [Jtest] builtin://Demo Configuration [Jtest] builtin://Find Duplicated Code [Jtest] builtin://Find Memory Problems [Jtest] builtin://Find Unused Code [Jtest] builtin://Flow Analysis Aggressive [Jtest] builtin://Flow Analysis Fast [Jtest] builtin://Flow Analysis Standard [Jtest] builtin://Internationalize Code [Jtest] builtin://Metrics [Jtest] builtin://OWASP Top 10 2017 [Jtest] builtin://PCI Data Security Standard 3.2 [Jtest] builtin://Recommended Rules [Jtest] builtin://TDD [Jtest] builtin://Thread Safe Programming [Jtest] builtin://UL 2900 [Jtest] builtin://Unit Test Assistant [Jtest] builtin://Unit Testing Best Practices [Jtest] builtin://Unit Testsj [Jtest] user://Critical Rules [Jtest] user://フロー解析 [Jtest] user://メトリクス [Jtest] user://推奨ルールセット |