このセクションの内容
概要
テスト データのディレクトリやテスト対象のファイルまたはファイルのセットを入力スコープとして指定して解析できます。以下のいずれかの方法を使用します。
テスト対象のファイルまたはファイルのセットを指定するには、-resource スイッチを使用します (データ ファイルの場所の指定については16 ページの 「テスト データの場所の指定」を参照)。複数の -resource スイッチを使用して、複数のリソースを指定することもできます。
-resource
スイッチを使用してテスト対象のファイルまたはファイルのテストを指定します (データ ファイルの場所の指定については「Running Static Analysis」を参照)。複数の-resource
スイッチを使用して、複数のリソースを指定することもできます。resource [pattern]
.properties ファイルで
jtest.resource
プロパティを設定します。複数のリソースはカンマで区切ります。jtest.resource=pattern1,pattern2
Ant および Maven のパターン
Ant または Maven を使用する場合、次のパターンを使用できます。
<resource>pattern</resource>
<resources>
要素を使用して複数のリソースを定義できます。
<resources> <resource>pattern1</resource> <resource>pattern2</resource> </resources>
リソース パターンの構文
リソース パターンは、次の規則に従って生成されたパスと比較されます。
ProjectName/resource/inside/of/project/directory.extension ProjectName/EXT/resource/inside/of/external/source/directories.extension
ProjectName
の値は、次のルールに従って生成されます。
- Ant のプロジェクト名は project タグの name プロパティから 取得されます。
- Maven のプロジェクト名は groupId:artifactId から 取得されます。
- Gradle のプロジェクト名は gradle.settings ファイルから 取得されます。
- IDE で設定されたプロジェクト名はそのまま使用されます。
projectNameTemplate
パラメーターを使って、Maven と Gradle のプロジェクト名をカスタマイズできます。詳細については「Maven 用 Jtest ゴール リファレンス」および「 Gradle 用 Jtest タスク リファレンス」を参照してください。
指定したスコープが外部リソースを含む場合、生成されるパスに文字列 EXT が含まれます。たとえば、解析対象のプロジェクトが、別の場所にあるソース ファイルをリンクで含んでいるかもしれません。以下の例では、Simple.java ファイルは Demo プロジェクトにありますが、Money.java ファイルはリンクで追加されていてプロジェクトの外部にあります。
Demo/src/main/java/examples/eval/Simple.java Demo/EXT/examples/bank/Money.java
Ant 形式のワイルドカードやその他のパラメーターを使用してパターンを構成できます。次の表は、サポートされているパラメーターの説明です。
パラメーター | 説明 |
---|---|
? | パス区切り文字以外の任意の 1 文字に一致するワイルドカード |
* | パス区切り文字以外の任意の 0 文字以上に一致するワイルドカード |
** | 0 個以上のパス セグメントに一致するワイルドカード |
/ | すべてのオペレーティング システムの区切り文字 |
"[non-alphanumeric characters]" | リソース パスに空白またはその他の非英数文字が含まれる場合、引用符を使用します。 |
-resource
引数に 1 つしか値が含まれていない場合、値はプロジェクト名と比較され、ワイルドカード (*) が使用されます。次の表は、-resource
スイッチの使用方法のサンプルです。
式 | 結果 |
---|---|
-resource ProjectName/src | 指定されたディレクトリおよびサブディレクトリのすべてのファイルが解析されます (ワイルドカードを使用しない場合、ディレクトリの完全な名前を指定する必要があります)。 |
-resource ProjectName/**/*.java | 指定されたプロジェクトのすべての Java ファイルが解析されます。 |
-resource **/src/main/java/my/company/*.java | 現在のビルドに含まれるすべてのプロジェクトの指定したサブディレクトリにあるすべての Java ファイルが解析されます。 |
-resource ProjectName/src/main/java/my/company/File.java | 指定された単一のファイルが解析されます。 |
-resource c:/resource.lst |
|
スコープの細かい調整
スコープにその他のフィルターを適用するには、-include および -exclude スイッチを使用します。
-include
スイッチは、ファイル システムのパスに一致するファイルだけをテストするよう指定します。その他のファイルはスキップされます。-exclude
スイッチは、ファイル システムのパスに一致するファイル以外をテストするよう指定します。
-include
と -exclude
の両方のスイッチが指定されている場合、-include
に一致するが、-exclude
に一致しないパターンだけがテストされます。
-include pattern -exclude pattern
または、次のオプションを使用して .properites ファイルにパターンを指定することもできます。
jtest.include=pattern jtest.exclude=pattern
Ant および Maven のパターン
Ant または Maven を使用する場合、次のパターンを使用できます。
<include>pattern</include> <exclude>pattern</exclude>
-include
および -exclude
フィルターには、Ant 形式のワイルドカードやその他のパラメーターを使用できます。次の表は、使用方法の説明です。
パラメーター | 説明 |
---|---|
? | パス区切り文字以外の任意の 1 文字に一致するワイルドカード |
* | パス区切り文字以外の任意の 0 文字以上に一致するワイルドカード |
** | 0 個以上のパス セグメントに一致するワイルドカード |
/ | セパレーター |
path: | ハード ディスクの絶対パスに一致する接頭辞 |
多数のファイルを -include/-exclude で指定する場合、リスト ファイル (*.lst) を作成し、そのリスト ファイルのパスを指定することもできます。*.lstファイルの各アイテムが個別のエントリとして扱われます。
例
構文 | 説明 |
---|---|
-include com/** | "com" で始まるすべてのパッケージをテストします。 |
-include path:**/Bank.java | Bank.java ファイルだけをテストします。 |
-include path:C:/Project/src/** | C:/Project/src のすべてのサブファイルおよびサブディレクトリをテストします。 |
-include path:C:/Project/src/* | C:/Project/src のすべてのファイルをテストしますが、サブディレクトリはテストしません。 |
-include c:/include.lst |
|
-exclude **/internal/** | パッケージ名に "internal" を含むクラス以外のすべてのものをテストします。 |
プロジェクト ファイルの作成
-project.*
スイッチを使用すると、プロジェクト ファイルを作成できます。プロジェクト ファイルには、Jtest の実行に必要な情報が含まれています。ソリューションがない場合に -project
スイッチを使用します。このスイッチを複数回使用して、多数のプロジェクトを解析できます。Ant 形式のワイルドカードもサポートされているほか、*.lst
ファイルへのパスも指定できます。次の表は、-project
スイッチに使用できるパラメーターの説明です。
パラメーター | 説明 |
---|---|
-project.location | プロジェクトファイルの生成先を指定します。 |
-project.name | プロジェクト名を設定します。 |
-project.encoding | プロジェクトのエンコーディングを設定します。 |
-project.sourcepath | プロジェクトのソースを設定します。複数のソース フォルダーを指定する場合、このオプションを複数回使用します。 |
-project.sourcelevel | Java コンパイラの準拠レベルを指定します。 |
-project.classpath | classpath を指定します。 |
-project.javahome | ライブラリを検索しbootclasspath に追加するために使用します。 |
-project.classpath.jars.dir | プロジェクトのクラスパスに追加しなければならない jar ファイルがあるディレクトリへのパスを指定します。json ファイルで jar ファイルの順番をチェックし、プロジェクトの要件に順番が合っていることを確認してください。 |
-project.junit.outcomes | レポートを生成するために使用する、JUnit テストの結果がある XML ファイルへのパスを指定します。複数のレポート ファイルを指定するには、このオプションを複数回指定してください。 |
-project.compilation.classes | Calculate Application Coverage コンフィギュレーションを実行するために必要なメタデータ情報を生成するために使用する、コンパイル済みプロジェクト クラスへのパスを指定します。 |
例
-project.location C:/ExampleProject -project.name ExampleProject -project.encoding UTF-8 -project.sourcepath C:/ExampleProject/src -project.sourcelevel C:/ExampleProject/src-test -project.classpath C:/ExampleProject/lib/test.jar;C:/ExampleProject/lib/test2.jar -project.javahome C:/Program Files/Java/jdk1.7