このセクションの内容
実行中の Web アプリケーション サーバーで手動または自動での機能テストを実行し、.NET マネージド コードのカバレッジ データをモニターおよび収集できます。カバレッジ データおよびテスト結果を DTP サーバーにレポートし、データをマージして関連付けることもできます。アプリケーション カバレッジ情報を DTP のカバレッジ エクスプローラー (詳細は DTP ユーザーズ ガイドの「カバレッジ エクスプローラー」を参照) に表示し、アプリケーションがどの程度テストされたかや、テストの品質を知ることができます。
カバレッジを収集するには、以下のコンポーネントが必要です。
dotTEST には、カバレッジ エージェントというコンポーネントが付属しています。カバレッジ エージェントは、テスト対象アプリケーション (AUT) にアタッチされ、AUT の実行されたコードをモニターします。AUT にカバレッジ エージェントをアタッチすると、REST API が公開され、テストおよびテスト セッションの開始および終了をマークできるようになります。テスト実行時には、カバレッジ エージェントとのやりとりが動的カバレッジ マップに書き込まれます。このマップには、実行されたコード行を示すマーカーが記録されます。
以下のステップが実行されます。
テスト実行ツールの結果 (SOAtest のテスト、DTP Engine によって実行されたテスト、手動テストなど) も report.xml という形で DTP Server に送信されます。カバレッジ データ ファイルとレポートのビルド ID が一致すると、DTP Server はそれらのデータを関連付け、カバレッジ情報に表示します。
ソース管理システムを使用する場合、適切にソース管理システムを設定します。「ソース管理システムの設定」を参照してください。 |
AUT の準備には、以下の手順が含まれます。
ソリューションに対して次のテスト コンフィギュレーションを実行します。
dottestcli.exe -config "builtin://Collect Static Coverage" -solution SOLUTION_PATH |
dottestcli のコンソール出力に静的カバレッジ データが保存された場所が表示されます。
Saving static coverage information into: 'C:\Users\[USER]\Documents\Parasoft\dotTEST\Coverage\Static\[FILE].data |
デフォルトでは、Web アプリケーション全体のカバレッジが計測されます。次のスイッチを使用すると、カバレッジのスコープをカスタマイズして、アプリケーションの一部だけを計測することができます (詳細については「テスト スコープの設定」を参照)。
dottestcli.exe -config "builtin://Collect Static Coverage" -solution "C:\Devel\FooSolution\FooSolution.sln" -resource "FooSolution/QuxProject" -include "C:\Devel\FooSolution\src\QuxProject\**\*.cs" -exclude "C:\Devel\FooSolution\src\QuxProject\**\tests\**\*.cs" |
-resource
スイッチには、ソリューション内でのパスを指定します。-include
および -exclude
スイッチには、ファイル システムのパスを指定します。
スコープ情報はスコープ コンフィギュレーション ファイルに保存されます。Web サーバーの設定時に IIS マネージャー ツールでこのファイルを指定します (「テスト対象アプリケーション (AUT) へのカバレッジ エージェントのアタッチ」を参照)。コンソール出力にはスコープ コンフィギュレーション ファイルの場所が表示されます。
Saving static coverage scope configuration into: 'C:\Users\[USER]\Documents\Parasoft\dotTEST\Coverage\Static\scope.instrumentation.txt' |
IIS でコンパイルされた Web プロジェクトでは、アプリケーション カバレッジ スコープ ファイルを使用できません。これは、IIS コンパイルのターゲット アセンブリの名前が事前に決まっていないからです。カバレッジの収集が開始される前に、IIS によってロードされるアセンブリの名前がわかる場合は、スコープ ファイルを使用できます。 |
このマシンで dotTEST IIS Manager ツールを実行し、IIS 内での実行時カバレッジ収集を有効にします。
dottest_iismanager.exe |
カバレッジ スコープを指定した場合、スコープ コンフィギュレーション ファイルへのパスも指定する必要があります。「IIS マネージャーのオプション」を参照してください。
dottest_iismanager は、Web サーバー (IIS) の環境を初期化し、サービスのように振る舞い、ユーザーがテストを実行してカバレッジを収集することを可能にします。次のメッセージが表示されている間、サービスが待機し、コマンドを受け付けます。
Write 'exit' and hit Enter to close dottest_iismanager |
テスト対象 Web サイトまたはアプリケーションがまだロードされていないときでも、セッションおよびテストを開始できることに注意してください。 |
次のアドレスに移動し、カバレッジ エージェントのステータスを確認します。 http://host:8050/status
次のレスポンスが返されるはずです。
{"session":null,"test":null} |
1 つの Web アプリケーションに同時にアクセスする複数のユーザーのカバレッジ情報を収集できます。それには、-multiuser
スイッチを指定して dotTEST IIS Manager を起動します。
dottest_iismanager.exe -multiuser |
詳細については、DTP のマニュアルの Coverage Agent Manager (CAM) セクションを参照してください。
デフォルトでは、IIS のアプリケーション プール プロセスは 20 分のアイドル タイムが経過するとシャットダウンしますが、このことがテスト セッションに悪影響を与える可能性があります。デフォルトのアイドル タイム値を変更し、シャットダウンを防ぐことによって、アプリケーションを操作するユーザーがテスト セッション中に予期しないサーバーの停止および再起動に遭遇しないようにできます。
オプション | 値 | 説明 | |
---|---|---|---|
-scope | [path] | スコープ設定ファイルへのパスです。デフォルト以外のスコープを使用する場合に必要です。「カバレッジのスコープのカスタマイズ」を参照してください。 | |
-agentTimeout | [miliseconds] | Coverage Agent との接続のタイムアウト時間を指定します。マシンの性能に合わせて値を調整してください。デフォルト値は 1500 ms です。
| |
-port | [port number] | デフォルトのポートが使用できない場合に dottest_iismanager の起動時に使用するポート番号を使用します。 | |
-multiuser | 複数ユーザーのカバレッジ情報収集を有効化します。「複数ユーザーからのカバレッジ収集」を参照してください。 |
SOAtest を使用して機能テストを実行したり (テスト コンフィギュレーションの設定については、『SOAtest ユーザーズ ガイド』の「SOAtest のアプリケーション カバレッジ」を参照してください)、手動テストを実行できます。テスト セッション終了時に、SOAtest で指定されたディレクトリの runtime_coverage_[timestamp].data ファイルにカバレッジが保存されます。この情報と静的カバレッジ データをマージして coverage.xml ファイルを作成し、DTP にアップロードすることができます。
SOAtest を使用してテストを実行した場合、SOAtest の XML レポートを DTP にアップロードします。詳細については、『SOAtest ユーザーズ ガイド』の「SOAtest のアプリケーション カバレッジ」の「Uploading Rest Results to DTP」を参照してください。
report.coverage.images
- DTP Server でカバレッジ イメージを作成するために使用するタグのセットを指定します。カバレッジ イメージは、同じビルド ID を持つ複数の実行のカバレッジ データを集約する際に一意の識別子となります。DTP は、1 レポートにつき最大 3 つまでのカバレッジ イメージをサポートします。session.tag
- 同じビルドの個々のテスト実行を区別する一意の識別子を指定します。build.id ="[value]"
- 結果にラベル付けするためのビルド識別子を指定します。ビルドごとに固有の値を使用することも、特定のビルドで実行される複数のテストセッションで同じ値を使用することもできます。次の引数で必要なデータを指定して Calculate Application Coverage
テスト コンフィギュレーションを実行します。
dottestcli.exe -runtimeCoverage [path] -report [path] -publish -settings [path] -out [path] -staticCoverage [path] |
dottest_iismanager を停止するには、以下のいずれかの操作を行います。
コンソールに次のメッセージが表示されている状態で 終了 と入力します。
Write 'exit' and hit Enter to close dottest_iismanager |
ブラウザーに次の URL を入力することで、サービスにリクエストを送信します: http://host:port/shutdown
すべてのセッションが完了しているときにだけ dottest_iismanager を停止してください。サービスを停止すると、アプリケーション カバレッジが収集されなくなるため、カバレッジを収集するテストが実行されている間は、常に dottest_iismanager を実行しておくことが重要です。 |
dottest_iismanager の終了時にエラーが発生し、Web サーバー環境のクリーンアップが行われなかった場合、-stop
パラメーターを指定して dottest_iismanager を実行することで、元の Web サーバー環境および設定を復元してください。
dottest_iismanager.exe -stop |
DTP のカバレッジ エクスプローラーを使用して、テスト実行時のアプリケーション カバレッジを参照できます。カバレッジ情報の参照については、DTP のマニュアルを参照してください。