このセクションの内容

概要

dotTEST には、スタンドアロン アプリケーションの実行中にカバレッジ情報を収集するための coverage.exe ツールが付属しています。coverage.exe ツールを実行すると、ウィザードが起動し、必要な情報を GUI で指定することができます。あるいは、コマンドライン オプションを使用して情報を指定することもできます。

また、dotTEST には、カバレッジ エージェントというコンポーネントが付属しています。カバレッジ エージェントは、カバレッジ情報を収集する際、カバレッジ エージェントを有効または無効にできます。カバレッジ エージェントを有効にすると、Coverage Agent Manager (CAM) に接続できます。CAM は、さまざまなテスト実行時にカバレッジを計測するための Web インターフェイスです。詳細については DTP のマニュアルの Coverage Agent Manager (CAM) セクションを参照してください。

カバレッジ エージェントが有効な場合でも無効な場合でも、ローカル カバレッジ レポートを生成して DTP に結果をアップロードすることが可能です。

.NET Core スタンドアロン アプリケーション

dotTEST は、.NET Core スタンドアロン アプリケーションのカバレッジを収集できます (専用の環境変数を使用した追加の依存ライブラリ設定または dotnet.exe のコマンドライン スイッチ --additional-deps  はサポートされていません)。

.NET Core Web アプリケーション

coverage.exe ツールの機能を利用すると、テスト対象アプリケーションのエントリ ポイントおよび  dotnet.exe へのパスを指定することで、 .NET Core Web アプリケーションのカバレッジを収集できます。詳細は「カバレッジ ウィザードの設定」を参照してください。

注意: 典型的なワークフローでは、dotTEST は IIS サーバーにデプロイされた Web アプリケーションのカバレッジを収集します (「Application Coverage for Standalone Applications」を参照)。

カバレッジ ウィザードの設定

  1. [INSTALL_DIR]\coverage.exe ツールを実行し、以下の情報を指定します。
    - アプリケーションへのフルパス
    - コマンドライン引数
    - 作業ディレクトリ

    .NET Core Web アプリケーションのカバレッジ収集

    [アプリケーションのフル パス] フィールドに へのパスを入力し、[コマンドライン引数] フィールドにアプリケーションのエントリ ポイントを入力します。例:

  2. アプリケーションが使用する .NET CLR のバージョンを指定します。
  3. ウィザードがスクリプトを生成するディレクトリを指定します。

  4. カバレッジの収集に Coverage Agent を使用するかしないかを指定します。

    • [カバレッジ エージェントの使用 ] オプションをオンにした場合、[管理者権限なしでカバレッジを収集する] オプションをオンまたはオフに設定し(「管理者権限なしでのカバレッジの収集」を参照)、ステップ 5 から 7 をスキップして [終了] をクリックします。

    • [カバレッジ エージェントなし] オプションをオンにした場合 (デフォルト)、ステップ 5 から 7 に進みます。


  5. -solution または -project スイッチを指定して、カバレッジをインポートするスコープを定義します。スイッチの指定は、DTP Engine の実行モジュールに渡され、ソースの場所を決定するのに使用されます。スイッチの詳細については「テスト スコープの設定」を参照してください。
  6. [実行前に古いカバレッジ データを削除する] オプションをオンまたはオフに設定します。このオプションは、デフォルトでオンです。


    デフォルトでは、以前の実行で収集されたカバレッジ情報を削除されます。このオプションをオフにすると、前回実行時のデータは削除されません。

  7. [アプリケーションをただちに実行] オプションをオンまたはオフにします。このオプションがオンの場合、monitorCoverage.bat スクリプトが自動的に実行されます (このオプションをオフにした場合、ステップ 3 で指定した場所にウィザードが生成したスクリプトを使用して、手動でアプリケーションを起動する必要があります)。

コマンド ライン オプションの使用

オプションとともに coverage.exe を実行して、アプリケーション カバレッジの収集に必要な情報を指定することもできます。

coverage.exe -app [path] -workingDir [path] -appArgs [arguments] -commandsDir [path] -scope [dotTEST scope switch] -clr [version] -run

次のオプションがあります。


オプション名

説明

-app[path]アプリケーションへのフル パスです。
-workingDir[path]作業ディレクトリへのパスです。
-appArgs[argument]アプリケーション コマンド ラインの引数です。
-commandsDir [path]カバレッジ ツールが生成する *.bat スクリプトを保存するディレクトリを指定します。
-scope

-solution [path]

-project [path]

-solution または -project スイッチを使用して、インポート対象のカバレッジのスコープを指定します。スイッチは DTP Engine 実行モジュールに渡され、ソースの場所を特定するのに使われます。 例:

-scope "-solution C:\temp\Scope.sln"

-scope "-project C:\temp\Scope.csproj"

スイッチの詳細については「テスト スコープの設定」を参照してください。

-clr

v20

v40

アプリケーションが使用する .NET CLR のバージョンを指定します。
-runnone

monitorCoverage.bat スクリプトを自動的に実行します (任意。-commandDir オプションで指定したディレクトリを開き、手動でスクリプトを実行することもできます)。

-doNotRemoveOldCoveragenone

各実行の前に古いカバレッジ データを削除しないよう指定します。このオプションが指定されていない場合、前回実行時に収集されたカバレッジ データは、デフォルトで削除されます。

-withCoverageAgentnone

Coverage Agent を使用してカバレッジを収集するよう指定します。


Coverage Agent を使用しないカバレッジの収集

カバレッジ ウィザードで、カバレッジ エージェントを使用しないで実行するよう設定した場合、ターゲット スクリプトのディレクトリとして指定されたディレクトリに以下のスクリプトが作成されます (「カバレッジ ウィザードの設定」を参照)。

  • アプリケーションを実行しモニターする monitorCoverage.bat
  • カバレッジ データをインポートしてレポートする importCoverage.bat
  1. monitorCoverage.bat スクリプトを実行します ([アプリケーションをただちに実行] オプションをオンにしてカバレッジ ウィザードを起動した場合、このステップをスキップします)。指定されたアプリケーションが実行されます。
  2. アプリケーションを操作してテストを実行します。
  3. アプリケーションを終了します。
  4. importCoverage.bat スクリプトを実行して次の場所にレポートを生成します: [Target scripts directory]\reports
  5. カバレッジ情報を参照します。

Coverage Agent を使用したカバレッジの収集

カバレッジ ウィザードで、カバレッジ エージェントを使用して実行するよう設定した場合、ターゲット スクリプトのディレクトリとして指定されたディレクトリに以下のスクリプトが作成されます (「カバレッジ ウィザードの設定」を参照)。

  • アプリケーションを実行しモニターする monitorCoverage.bat
  • Coverage Agent を実行する runCamAgent.bat
  1. runCamAgent.bat スクリプトを実行して Coverage Agent を起動します。

    CAM の操作が終わるまで、Coverage Agent プロセスを終了しないでください。

  2. monitorCoverage.bat スクリプトを実行してアプリケーションを起動します。

  3.  Coverage Agent Manager に接続し、テストを実行します。

  4. カバレッジおよびテスト結果をダウンロードします。DTP のマニュアルの Coverage Agent Manager (CAM) セクションを参照してください。

  5. アプリケーションを終了します。

  6. カバレッジおよびテスト結果を DTP にアップロードします。「テスト結果およびカバレッジの DTP へのアップロード」を参照してください。

  7. DTP でカバレッジ情報を参照します。

管理者権限なしでのカバレッジの収集

デフォルトでは、Coverage Agent を使用したカバレッジ収集を行うには管理者権限が必要ですが、管理者権限のないユーザーでカバレッジを収集するよう設定することもできます。

  1. [管理者権限なしでカバレッジを収集する] オプションをオンにしてウィザードを起動します (「カバレッジ ウィザードの設定」を参照)。すると、次のスクリプトが追加で生成されます。
    •  runCamAgentInit.bat
    • runCamAgentUninit.bat
  2. 管理者権限を持つユーザーで runCamAgentInit.bat スクリプトを実行し、Coverage Agent のセットアップと初期化を行います。これによって、管理者権限のないユーザーが「Coverage Agent を使用したカバレッジの収集」 で説明されているように、CAM を使用してテストを行えるようになります。
  3. テストが終了したら、runCamAgentUninit.bat スクリプトを実行してプロセスを停止します。

テスト結果およびカバレッジの DTP へのアップロード

CAM で収集したカバレッジ情報を参照するには、結果およびカバレッジを DTP にアップロードする必要があります。

テスト結果のアップロード

  1. DTP のインターフェイスで [Report Center] に移動します。
  2. 歯車のアイコンをクリックして [Report Center 設定] > [その他の設定] > [Report Center の管理] > [ツール] > [Data Collector アップロード フォーム] をクリックします。
  3. [ファイルの選択] をクリックし、CAM からダウンロードした report.xml ファイルを選択します。
  4. [アップロード] ボタンをクリックし、ファイルを DTP にアップロードします。

カバレッジのアップロード

DTP にカバレッジをアップロードする場合、CAM からダウンロードして実行時カバレッジと Coverage Agent が生成した静的カバレッジをマージする必要があります。カバレッジ データを適切にマージしてアップロードするには、.properties ファイルで必要な設定が行われていることを確認します (「設定の概要」を参照)。

  • dotTEST で DTP、スコープ、作成者が適切に設定されていることを確認します。「DTP への接続」、「テスト結果およびカバレッジの DTP へのアップロード」、「設定」を参照してください。
  • 適切にカバレッジ データをマージするには、dottestcli.properties ファイルで以下の設定を行います。
    • report.coverage.images -  DTP Server でカバレッジ イメージを作成するために使用するタグのセットを指定します。カバレッジ イメージは、同じビルド ID を持つ複数の実行のカバレッジ データを集約する際に一意の識別子となります。DTP は、1 レポートにつき最大 3 つまでのカバレッジ イメージをサポートします。
    • session.tag - 同じビルドの個々のテスト実行を区別する一意の識別子を指定します。
    • build.id ="[value]"- 結果にラベル付けするためのビルド識別子を指定します。ビルドごとに固有の値を使用することも、特定のビルドで実行される複数のテストセッションで同じ値を使用することもできます。
    • report.coverage.limit (任意) - カバレッジのしきい値を指定します。この値より低いカバレッジ結果は、レポートで強調表示されます (デフォルト値は40)。

静的カバレッジ ファイルの生成

ソリューションに対して次のテスト コンフィギュレーションを実行することで、静的カバレッジ ファイルを生成してください。

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

カバレッジ データのマージと DTP へのアップロード

実行時カバレッジ ファイルと静的カバレッジ ファイルを同じマシンにコピーし次のスイッチを指定して dottestcli  を実行します。

  • -runtimeCoverage: CAM でダウンロードするランタイム カバレッジへのパスを指定します (詳細については DTP マニュアルのCoverage Agent Manager (CAM) のセクションを参照)。 1 つのテスト セッションのカバレッジ情報を含む個々の .data ファイルへのパス、または複数のテスト セッションのカバレッジ情報を含む複数の .data ファイルを格納するフォルダーへのパスを指定できます。
  • -staticCoverage: CAM 静的カバレッジ ファイルへのパスを指定します (「静的カバレッジ ファイルの生成」を参照)。
dottestcli.exe -runtimeCoverage [path] -staticCoverage [path] -report [path] -publish -settings [path]

カバレッジ データが自動的に DTP にアップロードされます。

DTP でのカバレッジの参照

DTP のカバレッジ エクスプローラーを使用して、テスト実行時に収集されたアプリケーション カバレッジを参照できます。カバレッジ情報の参照の詳細については DTP のマニュアルを参照してください。


  • No labels