はじめに

dotTEST を使用すると、スタンドアロンまたは Web アプリケーションに対して手動または自動での機能テストを実行しながらマネージド コードのカバレッジ データをモニターおよび収集できます。

典型的なワークフローでは、dotTEST は IIS サーバーにデプロイされた Web アプリケーションのカバレッジを収集します。IIS サーバー上にデプロイされた実行中の Web アプリケーション サーバーで手動または自動での機能テストを実行し、マネージド コードのカバレッジ データを収集できます。.NET Web アプリケーションがサポートされています。別の方法として、デスクトップ アプリケーションとしてアプリケーションを実行することもできます (たとえば dotnet.exe を使用したり、.NET アプリケーションであればアプリケーション実行ファイルを使用したりして)。

専用の dotTEST アプリケーション カバレッジ UI またはコマンド ラインを使用してカバレッジを収集できます。カバレッジ データおよびテスト結果を DTP サーバーにレポートし、データをマージして関連付けることができます。アプリケーション カバレッジ情報を DTP のカバレッジ エクスプローラーに表示し、アプリケーションがどの程度テストされたかや、テストの品質を知ることができます。詳細については、DTP ユーザー ガイドの「カバレッジ エクスプローラー」を参照してください。

プロセスの概要

dotTEST には、カバレッジ エンジン (agent_client.exe) の REST クライアント API を使用してアプリケーションのカバレッジ収集を可能にするカバレッジ エージェントというコンポーネントが付属しています。カバレッジ エージェントを利用すると、スタンドアロン アプリケーションおよび Web アプリケーションの実行中にマネージド コードのカバレッジ情報を収集できます。agent_client.exe を実行すると UI が起動します。あるいは、コマンドライン オプションを使用して情報を指定することもできます。

dotTEST では、ローカル カバレッジ レポートを生成して DTP に結果をアップロードできます。

.NET Web アプリケーション

agent_client.exe ツールの機能を利用すると、テスト対象アプリケーションのエントリ ポイントおよび dotnet.exe へのパスを指定することで、 .NET Web アプリケーションのカバレッジを収集できます。

dotTEST カバレッジ エージェントは、テスト対象アプリケーション (AUT) にアタッチされ、AUT の実行されたコードをモニターします。AUT にカバレッジ エージェントをアタッチすると、REST API が公開され、テストおよびテスト セッションの開始および終了をマークできるようになります。テスト実行時には、カバレッジ エージェントとのやりとりが動的カバレッジ マップに書き込まれます。このマップには、実行されたコード行を示すマーカーが記録されます。

カバーされるコード行に関するメタデータ (静的カバレッジ データ) は、特別なテスト コンフィギュレーションを実行するか、アプリケーションのアセンブリをスキャンすることによって収集されます。テスト実行時には、カバレッジ エージェントとのやりとりが動的カバレッジ データ ファイルに書き込まれます。このファイルには、実行されたコード行を示すマーカーが記録されます。

.cs または .vb 以外のファイルに対しては、動的カバレッジはレポートされません。

dotTEST は、この動的カバレッジおよび静的カバレッジ データを処理します。カバレッジ情報を保存した coverage.xml が生成され、DTP に送信されます。DTP は、カバレッジ データを受信すると、カバレッジ イメージにロードします。カバレッジ イメージは、同じビルド ID を持つ複数の実行のカバレッジ データを集約することを可能にする特別なタグです。カバレッジ イメージにより、カバレッジ情報と特定のテストを関連付けることが可能になります。 

また、dotTEST は実行時カバレッジおよび実行されたクラスに関する一般的な情報だけが含まれるアプリケーション カバレッジを収集することもできます。これには、カバーされた行以外のソース コード構造の詳細は含まれません。簡略化されたレポートが DTP に送信され、DTP 上の既存のカバレッジ データに付加されます。クラス構造に関する情報 (静的カバレッジ データ) がすでに DTP に存在する場合、カバレッジ データを参照できます。 

テスト実行ツールの結果 (SOAtest のテスト、dotTEST によって実行されたテスト、手動テストなど) も report.xml という形で DTP に送信されます。カバレッジ データ ファイル (coverage.xml) とレポートのビルド ID が一致すると、DTP はそれらのデータを関連付け、カバレッジ情報に表示します。 

カバレッジ レポートを作成し、DTP にアップロードするには、dottestcov または dottestcli を使用します。dottesctcov は、カバレッジ専用のツールであり、カバレッジ レポートの生成に関してより多くのオプションがあります。「カバレッジ レポートの作成と DTP へのデータのアップロード」を参照してください。dottestcov.bat ファイルは、<INSTALL_DIR>\integration\coverage\dottestcov ディレクトリにあります。

Agent_client.exe および dottestcov は dotTEST のインストール ディレクトリの外にコピーして、独立して使用できるスタンドアロン ツールです。 そのため、テスト フローとの統合が容易です。エージェント クライアント コマンド ライン オプションの詳細は、「エージェント クライアントのコマンド ライン オプション」を参照してください。dottestcov コマンド ライン オプションの詳細は、「dottestcov のコマンド ライン オプション」を参照してください。

カバレッジ エージェント使用の前提条件

モニター対象のアプリケーションが実行されるマシンに、dotTEST に付属している Visual C++ 再頒布可能パッケージがインストールされていることを確認してください。ウィザード (「インストール」を参照) を使用して dotTEST をインストールした場合、パッケージは自動的にインストールされます。ZIP ディストリビューションから dotTEST をインストールした場合、または別のマシンでカバレッジを収集する場合は、次のディレクトリにある実行モジュールを手動で実行してパッケージをインストールしてください。:<INSTALL_DIR>\bin\prerequisites

モニター対象のアプリケーションは、dotTEST と同じマシンにインストールされていても、他のマシンにインストールされていても構いません。

ソース管理システムを使用する場合、適切にソース管理システムを設定します。「ソース管理システムの設定」を参照してください。

また、IIS サーバーにデプロイされた Web アプリケーションの場合は次の条件があります。

  • ISS Management Console で LoadUserProfile オプションに true が設定されている必要があります。
  • Internet Information Services (IIS) バージョン 7.5 以上が必要です。

dottestcov ツール使用の前提条件

dottestcov ツールは以下の OS で実行できます。

  • NET Runtime 9.0 がインストールされた Linux
  • 「OS」にリストされたバージョンの Windows

dottestcov ツールを使用するには、マシンに Java 11 以降がインストールされている必要があります。Oracle Java SE および OpenJDK がサポートされています。他のフリーやオープンソースの実装は、カバレッジ ツールの正常な動作を妨げる問題の原因になる可能性があります。JAVA_HOME 変数を設定し、システムの PATH に追加することを推奨します。

また、マシンに適切な .NET フレームワークがインストールされていることを確認します。

  • .NET Runtime 9.0 (Linux で dottestcov を使用する場合)
  • .NET Framework 4.7.2 または .NET Runtime 9.0 (Windows で dottestcov を使用する場合)

UI を使用したカバレッジ収集のワークフロー

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

設定済みの IIS サーバー上にホストされたすべての Web アプリケーションのカバレッジを収集する場合、次の操作を行います。 

  1. dotTEST アプリケーション カバレッジ UI を起動するには、コンソールで次のコマンド ラインを使用し、エージェント クライアントを実行します。
    agent_client.exe
  2. [IIS Web アプリケーション] を選択し、[次へ] をクリックします。
  3. (任意) 次のオプションを設定します。
    • アプリケーション URL - アプリケーション カバレッジ UI から実行可能になるアプリケーションの URL を指定します。
    • 詳細設定:
      • 複数ユーザーのカバレッジの同時取集を有効化 - 複数ユーザーのカバレッジの収集を有効にします。
      • カバレッジ出力ディレクトリ -カバレッジ データの出力ディレクトリへのパスを指定します。
      • カバレッジ スコープ ファイル - カバレッジ スコープ設定ファイルへのパスを指定します。スコープがデフォルトと異なる場合に必要です。
      • エージェントの REST API ポート - カバレッジ エージェントの起動時にデフォルト ポートが利用できない場合に使用するカスタム ポート番号を指定します。
      • エージェントの接続タイムアウト (秒) - カバレッジ エージェントとの接続のタイムアウト時間を指定します。デフォルト値は 2 秒です。 

        0 または負の値を指定すると、接続はタイムアウトしません。そのため、ツールの処理が非常に遅くなったり、無限に停止したりする可能性があります。

      • データのフラッシュを有効化 - 収集されたカバレッジのディスクへのフラッシュを有効化します。
        • データをフラッシュする間隔 (秒) - 収集したカバレッジ データをディスクに書き込む間隔を指定します。間隔を更新するには、1 秒より大きい値を設定します。
      • カバー可能な最大行数 - カバー可能な行数の上限を指定します。
      • エージェントへの接続に SSL を使用 - HTTPS 経由での接続を有効にします。
        • SSL 証明書の検証をスキップ - 自己署名 SSL 証明書の使用を有効にします。
        • 証明書のパス - SSL 証明書を格納する PFX ファイルへのパスを指定します。
        • 証明書のハッシュ - カバレッジ エージェントが使用するポートの SSL 証明書のハッシュを指定します。
        • 証明書のパスワード - PFX ファイルに格納された SSL 証明書のパスワードを指定します。
  4. [次へ] をクリックします。IIS サーバーにホストされたすべてのアプリケーションのカバレッジが収集されます。
  5. (任意): 指定されたアプリケーションでテストを実行し、カバレッジを参照します。[アプリケーションの開始] をクリックし、指定されたアプリケーションを実行し、テストを実施します。
  6. [カバレッジ エージェントの停止] をクリックし、すべてのアプリケーションからのカバレッジ収集を停止します。
  7. [終了] をクリックしてアプリケーション カバレッジ UI を閉じるか、[新規セッション] をクリックして新しいカバレッジ収集セッションを開始します。

スタンドアロン アプリケーションおよび Web アプリケーションのカバレッジ収集

特定のスタンドアロン アプリケーションまたは Web アプリケーションのカバレッジを収集するには、次の操作を行います。 

  1. dotTEST アプリケーション カバレッジ UI を起動するには、コンソールで次のコマンド ラインを使用し、エージェント クライアントを実行します。
    agent_client.exe
  2. [デスクトップ アプリケーション] を選択し、[次へ] をクリックします。
  3. 次のオプションを設定します。
    • テスト対象アプリケーションのフル パス - カバレッジを収集するテスト対象アプリケーションへのフル パスを指定します。指定したアプリケーションをアプリケーション カバレッジ UI から実行できるようになります。
    • アプリケーションのコマンドライン引数 - アプリケーション コマンド ラインの引数です。
    • アプリケーションの作業ディレクトリ - 作業ディレクトリへのパスを指定します。
    • (任意) 詳細設定:
      • 複数ユーザーのカバレッジの同時取集を有効化 - 複数ユーザーのカバレッジの収集を有効にします。
      • カバレッジ出力ディレクトリ -カバレッジ データの出力ディレクトリへのパスを指定します。
      • カバレッジ スコープ ファイル - カバレッジ スコープ設定ファイルへのパスを指定します。スコープがデフォルトと異なる場合に必要です。
      • エージェントの REST API ポート - カバレッジ エージェントの起動時にデフォルト ポートが利用できない場合に使用するカスタム ポート番号を指定します。
      • エージェントの接続タイムアウト (秒) - カバレッジ エージェントとの接続のタイムアウト時間を指定します。デフォルト値は 2 秒です。 

        0 または負の値を指定すると、接続はタイムアウトしません。そのため、ツールの処理が非常に遅くなったり、無限に停止したりする可能性があります。

      • データのフラッシュを有効化 - 収集されたカバレッジのディスクへのフラッシュを有効化します。
        • データをフラッシュする間隔 (秒) - 収集したカバレッジ データをディスクに書き込む間隔を指定します。間隔を更新するには、1 秒より大きい値を設定します。
      • カバー可能な最大行数 - カバー可能な行数の上限を指定します。
      • エージェントへの接続に SSL を使用 - HTTPS 経由での接続を有効にします。
        • SSL 証明書の検証をスキップ - 自己署名 SSL 証明書の使用を有効にします。
        • 証明書のパス - SSL 証明書を格納する PFX ファイルへのパスを指定します。
        • 証明書のハッシュ - カバレッジ エージェントが使用するポートの SSL 証明書のハッシュを指定します。
        • 証明書のパスワード - PFX ファイルに格納された SSL 証明書のパスワードを指定します。
  4. [次へ] をクリックします。指定したアプリケーションが実行され、カバレッジが収集されます。アプリケーションでテストを実施します。
  5. [カバレッジ エージェントの停止] をクリックし、アプリケーションからのカバレッジ収集を停止します。
  6. [終了] をクリックしてアプリケーション カバレッジ UI を閉じるか、[新規セッション] をクリックして新しいカバレッジ収集セッションを開始します。

コマンド ライン を使用したカバレッジ収集のワークフロー

CLI を使用してカバレッジを収集するには、次の操作を行います。

  1. (任意) ソース コードの情報を含む静的カバレッジ ファイルを生成します。静的カバレッジ ファイルには、ユーザー クラス、メソッド、行などの情報が記録されます。詳細は「ソース コードの情報を含む静的カバレッジ ファイルの生成」で説明されています。
  2. AUT にカバレッジ エージェントをアタッチします。「テスト対象アプリケーション (AUT) へのカバレッジ エージェントのアタッチ」を参照してください。
  3. CLI を使用してカバレッジを収集するか、テストを実行してカバレッジを収集します。詳細については「UI を使用したカバレッジの収集」または「テストを実行して実行時カバレッジを収集する」を参照してください。
  4. カバレッジ収集を終了します。詳細については「実行時カバレッジ データ収集の停止」を参照してください。

ソース コードの情報を含む静的カバレッジ ファイルの生成

静的カバレッジ (ソース コードの情報を含む) と実行時カバレッジがマージされたレポートを作成するには、静的カバレッジ ファイルの生成が必要です。

ソリューションに対して次のテスト コンフィギュレーションを実行して静的カバレッジ ファイルを生成します。

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].xml

この静的カバレッジ ファイルは、dottestcli および dottestcov を使用して実行時カバレッジ データとマージし、DTP に送信できます。 

ソース コードの情報を含まない静的カバレッジ ファイルの生成

次のコマンドを実行して静的カバレッジ ファイルを生成します。

dottestcov.bat -app [dir] 

-app は、テスト対象アプリケーションのディレクトリへのパスを指定します。

テスト対象アプリケーション (AUT) へのカバレッジ エージェントのアタッチ 

  1. IIS がインストールされ、アプリケーションがデプロイされているマシンに <INSTALLATION_DIR>\integration\coverage\agent ディレクトリをコピーします。
    エージェントをホーム ディレクトリ (%USERPROFILE% ディレクトリ) にデプロイすることは、We ベースのアプリケーションからのカバレッジ収集を妨げる可能性があるため、推奨されません。
  2. 管理者としてコンソールを実行します。
  3. このマシンで Agent Client ツールを実行し、IIS 内での実行時カバレッジ収集を有効にします。

    agent_client.exe

    Agent Client に追加のオプション指定が必要な場合があります。「エージェント クライアントのコマンド ライン オプション」を参照してください。

    Agent Client は Web サーバー (IIS) の環境を初期化し、サービスのように振る舞い、ユーザーがテストを実行してカバレッジを収集することを可能にします。次のメッセージが表示されている間、サービスが待機し、コマンドを受け付けます。  

    Write 'exit' and hit Enter to close agent_client 

    テスト対象 Web サイトまたはアプリケーションがまだロードされていないときでも、セッションおよびテストを開始できることに注意してください。

  4. このマシンのファイアウォールの設定で、ポート 8050 (カバレッジ エージェントのデフォルトのポート) での HTTP トラフィックが許可されていることを確認します。デフォルトのポートを使用できない場合は、カバレッジ エージェントのポート番号を変更できます。
  5. Web サイトまたは Web アプリケーションを開きます。
  6. 次のアドレスに移動し、カバレッジ エージェントのステータスを確認します。 http://host:8050/status
    次のレスポンスが返されるはずです。

    {"session":null,"test":null}

HTTPS 経由での Coverage Agent への接続

デフォルトでは、カバレッジ エージェントは HTTP プロトコル経由で利用できます。HTTPS 経由で接続するには、カバレッジ エージェントが使用するポートに SSL証明書をバインドする必要があります。それには、以下のいずれかの操作を行います。

  • Netsh.exe ツールがアクセス可能な場所に SSL 証明書を追加し、証明書のハッシュおよびポート番号を agent_client.exe に渡します。

    agent_client.exe -port 8050 -useSsl -certificateHash <SSL certificate hash>
  • .pfx ファイルに格納された SSL 証明書へのパスとパスワードを agent_client.exe に渡します。

    agent_client.exe -port 8050 -useSsl -certificatePath <path to PFX> -certificatePassword <password>
  • Netsh.exe ツールでポートに SSL 証明書と Agent Client の appid を設定します。Agent Client の ID は次のとおりです。

    {ed344e08-fab7-4dfb-9d07-68f2c2c9e373}

    Netsh.exe ツールで SSL 証明書を設定すると、-port および -useSsl スイッチを指定して Agent Client を起動することで、HTTP 経由で接続できます。

    agent_client.exe -port 8050 -useSsl

自己署名証明書を使用するには、-skipvalidation オプションを追加する必要があります。

PFX または PKCS12 フォーマットの SSL 証明書を利用できます。

SSL 証明書の削除

デフォルトでは、Agent Client はカバレッジ エージェント用に設定された証明書を自動的に処理します。手動で証明書を削除するには、Certmgr.exe ツールを起動し、Personal> Certificates に格納された証明書を削除します。

-unregister スイッチを指定して Agent Client でカバレッジ サービス ポートの登録を解除する場合、-useSsl および -removeCertificate スイッチを追加して SSL 証明書を削除する必要があります。

agent_client.exe -unregister -port 8050 -useSsl -removeCertificate

こうすると、ポート番号から SSL 証明書が削除されます。これで、ストレージから手動で証明書を削除できるようになりました。

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

CLI を使用してカバレッジを収集するには、専用のオプションとともに agent_client.exe を実行して、アプリケーション カバレッジの収集に必要な情報を指定します。

IIS アプリケーションの場合: 

agent_client.exe -port 8050

デスクトップ アプリケーションの場合:

agent_client.exe -app [path] -workingDir [path] -appArgs [arguments]

複数ユーザーからのカバレッジ収集

1 つの Web アプリケーションに同時にアクセスする複数のユーザーのカバレッジ情報を収集できます。それには、-multiuser スイッチを指定して Agent Client を起動します。

agent_client.exe -multiuser

Agent Client のアイドル タイムアウト値の変更

デフォルトでは、Agent Client のアプリケーション プール プロセスは 20 分のアイドル タイムが経過するとシャットダウンしますが、このことがテスト セッションに悪影響を与える可能性があります。デフォルトのアイドル タイム値を変更し、シャットダウンを防ぐことによって、アプリケーションを操作するユーザーがテスト セッション中に予期しないサーバーの停止および再起動に遭遇しないようにできます。

  1. Internet Information Services (IIS) Manager を開始します。
  2. Application Pools ノードを開きます。
  3. Web アプリケーションが使用するプールを選択します。
  4. [Actions] パネルの [Advanced Settings] をクリックします。
  5. [Process Model ] セクションで [Idle Time-out (minutes)] の設定をテストに適した値に変更します。

テストを実行して実行時カバレッジを収集する

実行時カバレッジを収集するには、次の方法があります。

  • SOAtest を使用して機能テストを実行します。SOAtest はテスト実行中に実行時カバレッジを収集し、データを DTP に送信します。テスト セッション実行の詳細については、SOAtest ユーザー ガイドを参照してください。
  • アプリケーションにカバレッジ エージェントをアタッチしてテストを実行します。実行時カバレッジ ディレクトリにカバレッジが収集されます。次に、実行時カバレッジと静的カバレッジををマージし、マージされたデータを DTP にアップロードします。詳細は「カバレッジ レポートの作成と DTP へのデータのアップロード」を参照してください。

実行時カバレッジ データ収集の停止

実行時カバレッジ データの収集を停止するには、以下のいずれかの操作を行います。

  1. コンソールに次のメッセージが表示されている状態で exit と入力し、エージェント クライアントを停止します。

    Write 'exit' and hit Enter to close agent_client
  2. ブラウザーに次の URL を入力することで、サービスにリクエストを送信します: http://host:port/shutdown

すべてのセッションが終了している場合にだけエージェント クライアントが停止します。サービスを停止すると、アプリケーション カバレッジが収集されなくなるため、カバレッジを収集するテストが実行されている間は、常にエージェント クライアントを実行しておくことが重要です。

エージェント クライアントの終了時にエラーが発生し、Web サーバー環境のクリーンアップが行われなかった場合、-uninitialize パラメーターを指定してエージェント クライアントを実行することで、元の Web サーバー環境および設定を復元してください。 

agent_client.exe -uninitialize

既知の制限事項

  • テスト セッションで収集されたカバレッジ情報をダウンロードできます。テスト セッションがアクティブでないときに収集されたカバレッジ情報はダウンロードできません。
  • 1 つの Web アプリケーションに複数のユーザーが同時にアクセスした場合、複数のユーザーのカバレッジデータが混在する場合があります。個々のユーザーに正しくカバレッジが関連付けられるようにするには、マルチユーザー モードを有効にします (「複数ユーザーからのカバレッジ収集」を参照)。
  • マルチユーザー モードを有効にするには、HTTP ヘッダーでユーザー固有の情報を提供するため、HTTP または HTTPS プロトコルが必要です。
  • .NET framework アプリケーションでは、同じアプリケーションに同時にアクセスする複数のユーザーのカバレッジ情報の収集はサポートされていません。
  • マルチユーザー モードでは、WCF ベースのアプリケーションのカバレッジを収集するには、ASP.NET 互換モードが有効化されている必要があります。
  • マルチユーザー モードでは、同じ Web アプリケーションにアクセスしている他のユーザーの余分なカバレッジ情報が、「デフォルト」ユーザー (ID が指定されていないユーザー) に集約される場合があります。
  • Web アプリケーションの初期化から収集されたカバレッジ データは、特定のユーザーではなく「デフォルト」ユーザーに割り当てられます。
  • WebSite プロジェクトは IIS サーバーによってリコンパイルされ、ターゲット アセンブリの名前が変わる可能性があるため、アプリケーション カバレッジ スコープ ファイルを使用できません。Web アプリケーションでは、スコープ ファイルが使用できます。

DTP への結果のアップロード

実行済みのテストの結果を DTP にアップロードするには、次の操作を行います。

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

SOAtest を使用する場合、テスト実行時にテスト結果が自動的に DTP に送信されます。https://docs.parasoft.com にある SOAtest ユーザー ガイドの「アプリケーション カバレッジ」 セクションを参照してください。

カバレッジ レポートの作成と DTP へのデータのアップロード

dottestcov または dottestcli コマンドを使用してカバレッジ レポートを作成し、DTP にデータをアップロードできます。dottestcov コマンド ライン オプションの詳細は、「dottestcov のコマンド ライン オプション」を参照してください。

3 つのタイプのカバレッジ レポートを生成できます。

  • 静的カバレッジおよび実行時カバレッジ レポート - マージされた静的カバレッジ (ソース コード情報を含む) および実行時カバレッジが含まれています。このレポートを作成するには、-runtimeCoverage および -staticCoverage スイッチを指定して dottestcli を実行するか、-runtime および -static をスイッチを指定して dottestcov を実行します。
  • アプリケーション カバレッジ レポート - アプリケーションの アセンブリおよび実行時カバレッジをスキャンすることで生成される静的カバレッジ レポートです。このレポートを作成するには、-app および -runtime スイッチを指定して dottestcov を実行します。
  • 実行時カバレッジ レポート - 実行時カバレッジおよび実行されたクラスに関する一般的な情報だけが含まれる簡易的なアプリケーション カバレッジ レポートです。カバーされた行以外のクラス構造の詳細は含まれません。既存のアプリケーションまたは静的カバレッジベースのデータが DTP に存在する場合、このレポートを参照できます。このレポートを作成するには、-runtime スイッチを指定して dottestcov を実行します。

カバレッジ レポートを作成し、DTP にデータをアップロードするには、次の操作を行います。

  1. dottestcli/dottestcov で DTP、スコープ、作成者が適切に設定されていることを確認します。「DTP への接続」、「DTP への結果の送信とソース コードのパブリッシュ」、「設定」を参照してください。
  2. 適切にカバレッジ データをマージするには、.properties ファイルで以下の設定を行います。
    - - report.coverage.images - DTP でカバレッジ イメージを作成するために使用するタグのセットを指定します。カバレッジ イメージは、同じビルド ID を持つ複数の実行のカバレッジ データを集約する際に一意の識別子となります。DTP は、1 レポートにつき最大 3 つまでのカバレッジ イメージをサポートします。
    - session.tag - 同じビルドの個々のテスト実行を区別する一意の識別子を指定します。
    - build.id - 結果にラベル付けするためのビルド識別子を指定します。ビルドごとに固有の値を使用することも、特定のビルドで実行される複数のテストセッションで同じ値を使用することもできます。
    - report.coverage.limit (任意) - カバレッジのしきい値を指定します。この値より低いカバレッジ結果は、レポートで強調表示されます (デフォルト値は 40)。
  3. dottestcli を使用する場合、実行時カバレッジ ファイルおよび静的カバレッジ ファイルを同じマシンにコピーし、次のスイッチを指定して dottestcli を実行します。
    • -runtimeCoverage - カバレッジ エージェントを使用して収集された実行時カバレッジ データへのパスを指定します。単一のテスト セッションのカバレッジ情報を保存した個々の .data ファイルへのパスを指定することも、複数のテスト セッションの .data ファイルを含むフォルダーへのパスを指定することもできます。
    • -staticCoverage - 静的カバレッジ ファイルへのパスを指定します (「ソース コードの情報を含む静的カバレッジ ファイルの生成」を参照)。
    • -publish - マージされたカバレッジを DTP に送信します。

      dottestcli.exe -runtimeCoverage [path] -staticCoverage [path] -publish 

      これによって、coverage.xml ファイルに実行時カバレッジ データを書き込みできるよう、静的カバレッジ データだけでなく、テスト実行時に生成される実行時データ カバレッジにも dotTEST がアクセスできるようになります。

  4. dottestcov を使用する場合、以下のスイッチを指定して dottestcov を実行します。
    • -app - テスト対象アプリケーションのディレクトリまたはアーカイブ ファイルへのパスを指定します。
    • -runtime - カバレッジ エージェントを使用して収集された実行時カバレッジ データへのパスを指定します。単一のテスト セッションのカバレッジ情報を保存した個々の .data ファイルへのパスを指定することも、複数のテスト セッションの .data ファイルを含むフォルダーへのパスを指定することもできます。
    • -static - 静的カバレッジ ファイルへのパスを指定します (「ソース コードの情報を含む静的カバレッジ ファイルの生成」を参照)。
    • -publish - マージされたカバレッジを DTP に送信します。

      例 1: 実行時データおよびモニターからの静的カバレッジに基づいてレポートを生成する

      dottestcov.bat -static [path to static_coverage.xml file] -runtime [path/dir]
      -publish -settings [path to .properties]

      例 2: 実行時データおよびアプリケーション バイナリからのカバレッジに基づいてレポートを生成する

      dottestcov.bat -app [dir] -runtime [path/dir] -publish -settings [path to .properties]

       例 3: 実行時データに基づいてレポートを生成する

      dottestcov.bat -runtime [path/dir] -publish -settings [path to .properties]
  5. 以前に生成された実行時カバレッジ レポートをマージするには、dottestcov merge コマンドを実行します。2 つ以上のレポートをマージするには、次のコマンドを実行します。

    dottestcov.bat merge -coverage <REPORT_FILE> -coverage <REPORT_FILE> 
    [-coverage <REPORT_FILE>] [-report <REPORT_DIR>] [-excludeunmatchedruntime]
    • -coverage <REPORT_FILE> - マージして DTP にパブリッシュする 1 つ以上の入力カバレッジ レポートを指定します。
    • -report <REPORT_DIR> - (任意) 指定されたフォルダーに xml カバレッジ レポートを生成します。デフォルトでは、レポートは .coverage/reports フォルダーに保存されます。

SOAtest を使用する場合、テスト実行時に静的カバレッジおよび実行時カバレッジ データがマージされ、DTP に送信されます。SOAtest ユーザー ガイドの「アプリケーション カバレッジ」 セクションを参照してください。

dottestcli を使用したカバレッジ スコープのカスタマイズ

デフォルトでは、 アプリケーション全体のカバレッジが計測されます。カバレッジ収集のスコープを狭くするには、-solution、-resource、-include および/または -exclude オプションを使用して、アプリケーションの特定の部分へのパスを指定します (静的カバレッジの生成については「テスト スコープの設定」を参照)。結果として、静的カバレッジ収集のカスタマイズされたスコープを含むスコープ設定ファイルが生成されます。

スコープ設定ファイルの内容を変更する必要はありません。しかし、大規模なアプリケーションのカバレッジを収集する場合は、実行時カバレッジ (テスト対象アプリケーションの操作中に収集されるカバレッジ) 収集のスコープを微調整するとよいでしょう。実行時カバレッジの収集をカスタマイズするには、scope.instumentation.txt ファイルを開き、カバレッジ データを収集しないアセンブリをアセンブリのリストから削除します。

IIS でコンパイルされた Web プロジェクトでは、アプリケーション カバレッジ スコープ ファイルを使用できません。これは、IIS コンパイルのターゲット アセンブリの名前が事前に決まっていないからです。カバレッジの収集が開始される前に、IIS によってロードされるアセンブリの名前がわかる場合は、スコープ ファイルを使用できます。

カバレッジ収集のスコープを狭くするには:次の操作を行います。

  1. コマンド ラインにリソースへのパスを追加します (「ソース コードの情報を含む静的カバレッジ ファイルの生成」を参照)。例:

    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"

    静的カバレッジが生成され、スコープ設定ファイルにスコープ情報が保存されます。コンソール出力にはスコープ コンフィギュレーション ファイルの場所が表示されます。例:

    Saving static coverage scope configuration into: 'C:\Users\[USER]\Documents\Parasoft\dotTEST\Coverage\Static\scope.instrumentation.txt'
  2. -scope オプションを使用してスコープ設定ファイルへのパスをスクリプトに追加します (「テスト対象アプリケーション (AUT) へのカバレッジ エージェントのアタッチ」を参照)。

    agent_client.exe -scope 'C:\Users\[USER]\Documents\Parasoft\dotTEST\Coverage\Static\scope.instrumentation.txt'

dottestcov を使用したカバレッジ スコープのカスタマイズ

デフォルトでは、 アプリケーション全体のカバレッジが計測されます。カバレッジ収集のスコープを狭くするには、次のようにコマンドを実行します。

dottestcov.bat 
-include "MyAssembly.dll/*"
-exclude "MyAssembly.dll/packageA.*"
-app [dir] -runtime [path/dir] -publish -settings [path to .properties]

DTP でのカバレッジの参照

DTP のカバレッジ エクスプローラーを使用して、テスト実行時のアプリケーション カバレッジを参照できます。カバレッジ情報の参照についての詳細は、DTP ユーザー ガイドを参照してください。

  • No labels