...
Java JDK 8 でのバイトコードの改行の計算方法は、それより前のバージョンの Java と異なります。そのため、カバレッジの結果が変わる場合があります。
Info |
---|
ソース管理システムを使用する場合、ソース管理システムが適切に設定されていることを確認してください。「ソース管理システムを使用する場合、適切にソース管理システムを設定します。「Source Control Settings」を参照してください。 |
...
Jtest には、カバレッジ エージェントというコンポーネントが付属しています。カバレッジ エージェントは、テスト対象アプリケーション (AUT) にアタッチされ、AUT の実行されたコードをモニターします。AUT にカバレッジ エージェントをアタッチすると、REST API が公開され、テストおよびテスト セッションの開始および終了をマークできるようになります。セッションの開始および終了をマークできるようになります。
カバーされるコード行に関するメタデータ カバーされるコード行に関するメタデータ (静的カバレッジ データ) は、アプリケーションのビルド プロセスの一環として特別なテスト コンフィギュレーションを実行することによって収集されます。テスト実行時には、カバレッジ エージェントとのやりとりが動的カバレッジ マップに書き込まれます。このマップには、実行されたコード行を示すマーカーが記録されます。
Jtest は、この動的カバレッジ マップと静的カバレッジ データを処理します。カバレッジ情報を保存した coverage.xml が生成され、DTP に送信されます。DTP は、カバレッジ データを受信すると、カバレッジ イメージにロードします。カバレッジ イメージは、同じビルド ID を持つ複数の実行のカバレッジ データを集約することを可能にする特別なタグです。カバレッジ イメージにより、カバレッジ情報と特定のテストを関連付けることが可能になります。データを集約することを可能する特別なタグです。カバレッジ イメージにより、カバレッジ情報と特定のテストを関連付けることが可能になります。
テスト実行ツールの結果 (SOAtest のテスト、Engine によって実行されたテスト、手動テストなど) も report.xml という形で DTP に送信されます。カバレッジ データ ファイルとレポートのビルド ID が一致すると、DTP はそれらのデータを関連付け、カバレッジ情報に表示します。が一致すると、DTP はそれらのデータを関連付け、カバレッジ情報に表示します。
カバレッジ収集のためのテスト対象アプリケーション (AUT) の構成
AUT の準備には、以下の手順が含まれます。
- 静的カバレッジ 静的カバレッジ ファイルを生成します。静的カバレッジ ファイルには、ユーザー クラス、メソッド、行などの情報が記録されます。詳細は「静的カバレッジ ファイルの生成」で説明されています。
- AUT にカバレッジ エージェントをアタッチします。「テスト対象アプリケーション (AUT) へのカバレッジ エージェントのアタッチ 」を参照してください。
- カバレッジ エージェントには、ファイルを出力したり、スコープを決定するためのデフォルトの設定が含まれていますが、アプリケーション カバレッジの目的に合わせて構成ファイルのプロパティを設定できます。詳細については「カバレッジ エージェントの構成」を参照してください。
...
静的カバレッジ ファイルは、ビルド プロセス中に Jtest Maven、Gradle または Maven、Gradle または Ant プラグインによって生成されます。このファイルは、ソース コードがあるビルド マシン上で生成される必要があります。生成された静的カバレッジ ファイルは、コードが変更されるまで使用できます。ファイルは、コードが変更されるまで使用できます。
静的カバレッジ ファイルを生成するには、AUT のメイン ディレクトリで、次のコマンドを実行します。
Maven の場合
Code Block |
---|
mvn package jtest:monitor |
Gradle の場合
Code Block |
---|
gradle assemble jtest-monitor -I [INSTALL]/integration/gradle/init.gradle |
Ant の場合
Code Block |
---|
ant -lib [INSTALL]/integration/ant/jtest-ant-plugin.jar -listener com.parasoft.Listener jtest-monitor |
Info | ||
---|---|---|
Ant は、モニター タスクを実行する前にすべてのクラスをコンパイルすることを要求します。ビルドの前にプロジェクトを変更し、正しい順序になるようタスクを設定してください。以下はターゲットの設定例です。
|
monitor.zip パッケージが生成され、ビルド出力ディレクトリに置かれます。その場所へのパスがコンソールに出力されます。パッケージが生成され、ビルド出力ディレクトリに置かれます。その場所へのパスがコンソールに出力されます。
このパッケージには以下が含まれます。
- static_coverage.xml - 静的カバレッジ情報が保存されています。
- agent.jar - Jtest Java カバレッジ エージェントの jar ファイルです。
- agent.properties - エージェントの設定ファイルです。ビルド プロセス実行中に生成されたスコープ パラメーターや、他の属性が保存されています。
- agent.sh/agent.bat - エージェントを AUT プロセスにアタッチするために必要な Jtest Java エージェントの VM 引数を生成するスクリプトです。
Anchor | ||||
---|---|---|---|---|
|
- monitor.zip パッケージの内容をサーバー マシンに展開します。
agentgent.sh/agent.bat スクリプトを実行して Jtest Java エージェントの VM 引数を生成します。monitor.zip パッケージのスクリプトは、コンソールに
-javaagent
VM 引数を出力します。エージェントを AUT にアタッチするには、この引数が必要です。結果は runtime_coverage サブ ディレクトリに出力されます。 ディレクトリに出力されます。Code Block Jtest Agent VM argument: -javaagent:"[path to agent dir]\agent.jar"=settings="[path to agent properties file]\agent.properties",runtimeData="[path to monitor dir]\monitor\ runtime_coverage"
- アプリケーション サーバーの起動スクリプトに
-javaagent
フラグを追加してサーバーを再起動します (「Web Application Coverage Tutorial」のステップ 5c を参照)。AUT にカバレッジ エージェントをアタッチすると、エージェントを制御するための REST API が公開されます。が公開されます。 - ラウザーに次の ブラウザーに次の URL を入力して、カバレッジ エージェントが設定されていることを確認します。
[application_host]:8050/status/
アプリケーションが適切に構成されている場合、API は次のデータを返します。
Anchor | ||||
---|---|---|---|---|
|
通常、アプリケーション サーバーには複数のアプリケーションがあります。さらに、共通サーバー クラスまたはアプリケーション ライブラリはインストゥルメントする必要がありません。Jtest がカバレッジを収集する必要があるのは、アプリケーションのソース コードだけです。すべてのクラスをインストゥルメントすると、時間がかかりすぎる場合があります。
...
- agent.properties ファイルを使用して
-javaagent
への引数を使用して
agent.properties ファイルは monitor.zip パッケージに生成されます パッケージに生成されます (「静的カバレッジ ファイルの生成」を参照)。このファイルでプロパティを変更してカバレッジ エージェントを適切に設定できます。以下は、agent.properties ファイルを使ってカバレッジ エージェントを設定する例です。
Code Block |
---|
jtest.agent.runtimeData=[path to runtime_coverage directory] jtest.agent.includes=com/myapp/data,com/myapp/common/** jtest.agent.excludes=com/myapp/transport/*,com/myapp/autogen/** jtest.agent.autostart=false |
-javaagent
にプロパティを追加するには、jtest にプロパティを追加するには、jtest.agent 接頭辞を削除して名前を変更する必要があります。例:
Code Block |
---|
-javaagent:"[path to agent dir]\agent.jar"=settings="[path to agent properties file]\agent.properties",autostart=true |
Info | ||
---|---|---|
| ||
|
以下の表は、カバレッジ エージェントを設定するために使用できる全プロパティの一覧です。
プロパティ | 説明 |
---|---|
jtest.agent.runtimeData | 実行時データが保存される場所です。次の例では、C:/tmp/myapp/ ディレクトリに
|
jtest.agent.includes | インストゥルメントするクラスのパターンをカンマ区切りのリストで指定します。次のワイルドカードがサポートされています。
次の例では、
|
jtest.agent.excludes | インストゥルメントから除外するクラスのパターンをカンマ区切りのリストで指定します。次のワイルドカードがサポートされています。
次の例では、
|
jtest.agent.autostart | 実行時データの自動収集を有効/無効にします。デフォルト値は true です。 |
jtest.agent.port | エージェントの通信ポートを設定します。デフォルト値は 8050 です。 |
jtest.agent.debug | コンソールへの冗長な出力を有効/無効にします。デフォルト値は false です。 |
jtest.agent.collectTestCoverage | テスト ケースのカバレッジ情報の収集を有効/無効にします。デフォルト値は false です。 |
jtest.agent.enableMultiuserCoverage | 複数ユーザーの Web アプリケーション カバレッジの収集を有効/無効にします。デフォルト値は |
です。 このプロパティを true に設定すると、Coverage Agent Manager を使って複数ユーザーのカバレッジを収集できます。詳細については Parasoft DTP ドキュメントの「Coverage Agent Manager (CAM)」のセクションを参照してください。 |
jtest.agent.associateTestsWithCoverage |
カバレッジと 特定のテストの関連付けを有効/ |
無効にします。デフォルト値は true です。 |
jtest.agent.testid |
エージェント実行時にカバレッジが関連付けられる初期テスト ID です。 |
テスト コンフィギュレーションと実行
SOAtest を使用して機能テストを実行したり (テスト コンフィギュレーションの設定については、『SOAtest ユーザーズ ガイド』の「SOAtest のアプリケーション カバレッジ」を参照してください)、手動テストを実行できます。テスト セッション終了時に、SOAtest で指定されたディレクトリの runtime_coverage_[timestamp].data
ファイルにカバレッジが保存されます。この情報と静的カバレッジ データをマージして coverage.xml
ファイルを作成し、DTP にアップロードすることができます。にアップロードすることができます。
DTP への結果のアップロード
CAM を使用する場合
- DTP のインターフェイスで のインターフェイスで [Report Center] に移動します。に移動します。
- 歯車のアイコンをクリックして [Report Center 設定] > [その他の設定] > [Report Center の管理] > [ツール] > [Data Collector アップロード フォーム] をクリックします (管理者権限が必要です)。
- [ファイルの選択] をクリックし、CAM からダウンロードした report.xml ファイルを選択します。
- [アップロード] ボタンをクリックし、ファイルを DTP にアップロードします。
...
- Jtest で DTP、スコープ、作成者が適切に設定されていることを確認します。「Connecting to DTP 1」、「Sending Results and Publishing Source Code to DTP」、「Configuration 1.」を参照してください。
- 適切にカバレッジ データをマージするには、jtestcliデータをマージするには、dottestcli.properties ファイルで以下の設定を行います。
-- report.coverage.images
- - DTP
- DTP Server でカバレッジ イメージを作成するために使用するタグのセットを指定します。カバレッジ イメージは、同じビルド ID を持つ複数の実行のカバレッジ データを集約する際に一意の識別子となります。DTP は、1 レポートにつき最大 3 つまでのカバレッジ イメージをサポートします。
-session.tag
- 同じビルドの個々のテスト実行を区別する一意の識別子を指定します。
- build.id ="[value]" - - 結果にラベル付けするためのビルド識別子を指定します。ビルドごとに固有の値を使用することも、特定のビルドで実行される複数のテストセッションで同じ値を使用することもできます。
次の引数で必要なデータを指定して
Calculate Application Coverage
テスト コンフィギュレーションを実行します。Code Block jtestcli -staticcoverage [path to static_coverage.xml file] -runtimecoverage [path/dir] -config "builtin://Calculate Application Coverage" -publish
これによって、coverage.xml ファイルに実行時カバレッジ データを書き込みできるよう、静的カバレッジ データだけでなく、テスト実行時に生成される実行時データ カバレッジにも Jtest Jtest がアクセスできるようになります。
DTP でのカバレッジの参照
...