Windowsアプリケーションのアプリケーションカバレッジは以下の流れで計測します。
アプリケーションのビルド
アプリケーションカバレッジ計測用ファイルの作成
アプリケーションカバレッジの計測(アプリケーションの実行・操作)
計測したカバレッジデータをVisual Studioへインポートし、結果を確認
1. アプリケーションのビルド
アプリケーションカバレッジを計測するためのサンプルプロジェクトの準備をします。
次のアプリケーションを起動します。 <dottest_install_dir>\deploy_examples.exe%USERPROFILE%\Documents\Parasoft\dotTEST 10\Examples\NET Framework\VS2019\SourceCode に作成されたStackMachineフォルダを任意のディレクトリに配置します。
※VS2019はご利用のVisualStudioのバージョンに置き換えてください。配置したStackMachineフォルダを開き、ソリューションファイル(StackMachineExample.sln)を実行します。
ソリューションファイルが格納されているファイルパスにはマルチバイト文字を含まないようご注意ください。
マルチバイト文字を含むパスを用いた場合、カバレッジが正しく収集できない恐れがあります。以下の画面が開いたらDebugモードを選択し、ビルドを行います。 ビルドはコンテキストメニューの[ビルド(B)] – [ソリューションのビルド(B)]を選択します。
ビルドが正常に終了したことを確認します。
<StackMachineを配置したディレクトリ>\StackMachine\bin\Debug\StackMachine.pdbが生成されていることを確認します。
2. アプリケーションカバレッジ計測用ファイルの作成
実行モジュールカバレッジウィザードを開きます。
<dottest_install_dir>\coverage.exe を実行します。
例)C:\Program Files\Parasoft\dotTEST\2022.2\coverage.exe実行モジュールカバレッジウィザード上でカバレッジ計測のための設定を行います。
設定項目:アプリケーションのフルパス ビルドにて作成したアプリケーション(.exe等)の絶対パス
コマンドライン引数 コマンドラインのアプリケーションの場合に実行時に指定する引数
作業ディレクトリ アプリケーションを実行する絶対パス
カバレッジインポートのスコープ -solutionまたは-projectを用いてカバレッジ計測の範囲を指定 ※ 1
.NET CLRバージョン 対象のフレームワーク ※ 2
ターゲットスクリプトのディレクトリ カバレッジ計測用ファイルを生成する絶対パス ※ 3
アプリケーションをただちに実行 チェックを入れるとウィザード終了と同時にカバレッジ計測を開始
※ 1 –solution <path>\xxx.sln または –project <path>\xxx.csprojの形式で指定します。
※ 2 Visual Studio上からプロジェクトのプロパティを開き、[アプリケーション]タブ内の”対象のフレームワーク”にて確認できます。
※ 3 デフォルトではC:\Users\<user_name>\Documents\Parasoft\dotTEST\Coverageに作成されます。
実行モジュールカバレッジウィザードの設定例(Windowsアプリケーション):
設定が終わったら、実行モジュールカバレッジウィザードの[終了]ボタンを押下します。計測用ファイルが"ターゲットスクリプトのディレクトリ"で指定したパスに作成されます。
作成されるファイル、フォルダ:CoverageLogs カバレッジデータやログが格納されます。※アプリケーション実行時に作成されます。
Coverage.settings dotTEST のカバレッジ計測用設定ファイルです。
importCoverage.bat Visual Studioへインポート可能なデータおよびレポートを生成します。
monitorCoverage.bat アプリケーションを起動し、カバレッジを計測します。
dottest.Hooks.deps.json dotTESTの内部で利用するファイルです。
3. アプリケーションカバレッジの計測
実行モジュールカバレッジウィザードで[アプリケーションをただちに実行]がチェックされた状態で[終了]ボタンを押下すると、サンプルアプリケーションが起動します。
(アプリケーションを終了してから再度起動する場合は、ここまでの手順で作成した monitorCoverage.bat を実行します。)
.NET6ご利用中の場合、カバレッジ取得に制限事項があります。monitorCoverage.batの実行前に実施頂く手順がありますので
こちらをご確認ください。
起動したアプリケーション上でカバレッジを計測する操作をします。
操作例:
[Input] フィールドに「10」を入力して [PUSH] ボタンをクリックし、スタックに 10 を追加します。
[Input] フィールドに「30」を入力して [PUSH] ボタンをクリックし、スタックに 30 を追加します。
[+] ボタンをクリックして 2 つの値を加算します。 (結果は 40 と表示されます。)
アプリケーションの操作が完了したら、右上の [×] ボタンでアプリケーションを終了します。CoverageLogsディレクトリに2つのログファイルが作成されます。
例)
CoverageMap.12680-5711194b-1d1d65f.1.dyn.log
CoverageMap.12680-5711194b-1d1d65f.seq.log
[補足] 累積カバレッジを計測する方法
monitorCoverage.batの標準の動作では、計測するカバレッジデータはmonitorCoverage.batを実行する度に1から計測しなおします。
1度のカバレッジの計測で多くのアプリケーションの操作を行うことが難しい場合は、アプリケーションを複数回実行し、計測したカバレッジデータを合計して確認することができます。monitorCoverage.batを複数回実行し、カバレッジデータを合計したい場合は、monitorCoverage.batの7行目をコメントアウトします。(以下の例では、7行目の行頭にremを追加しています)
修正例:
rem Registering .NET Profilers pushd "C:\Program Files\Parasoft\dotTEST\2022.2\bin\dottest\dotnet" Parasoft.Dottest.Profiling.Reg.exe popd rem Clean up coverage logs rem rmdir /s /q "C:\Users\aita\Documents\Parasoft\dotTEST\Coverage\CoverageLogs" rem Initialize profiling environment: set cor_enable_profiling=1 set complus_profapi_profilercompatibilitysetting=EnableV2Profiler set disable_il_cov_instr=1 set parasoft_profiling_profiler_0=netcoverage.dll set PARASOFT_DISABLE_IL_COV_INSTR=1 set parasoft_profiling_profiler_last_id=0 <省略>
monitorCoverage.batの変更が完了したら、monitorCoverage.bat を実行し、アプリケーションを起動し、カバレッジを計測してください。
手動にてCoverageLogsフォルダを削除しない限り、計測したカバレッジデータは削除されずに蓄積されます。
4. 計測したカバレッジデータをVisual Studioへインポートし、結果を確認
はじめにカバレッジの計測データをインポートした場合のVisual Studioの画面例を記載します。
エディターウィンドウ(図の上部)の左端が緑に塗られている行はアプリケーションカバレッジの計測にて実行された処理を、赤に塗られている行は実行されなかった処理を表しています。
カバレッジのビュー(図の下部)には、実行可能行と計測時に実行された行が行数とパーセントにて表示されます。
これより、計測したカバレッジデータをVisual Studioへインポートする手順を記載します。なお、Visual Studio上で計測したカバレッジデータを確認する手順はお持ちのライセンスにより異なりますので
お使いのライセンスをご確認の上、該当するエディションの手順を実施してください。
dotTEST Engineエディションのライセンスをお持ちの場合
計測したカバレッジデータをVisual Studioにインポートが可能な形式に変換します。
ここまでの手順で作成した importCoverage.bat を実行します。importCoverage.bat の実行が完了すると、reportsディレクトリが作成され、coverage.xmlなどのレポートファイルが生成されます。
coverage.xmlファイルが作成されない場合は<dottest_install_dir>\dottestcli.propertiesのライセンス設定を確認してください。
ノードロックライセンスの場合の例
● dottest.license.use_network=false● dottest.license.local.password=[パスワード]
フローティングライセンスの場合の例
● dottest.license.use_network=true
● dottest.license.network.type=ls
● dottest.license.network.edition=server_edition
● dtp.url=https://localhost:8443
● dtp.user=[ユーザー]
● dtp.password=[パスワード]
サンプルアプリケーションのビルドを行ったときに開いたソリューションファイル(StackMachineExample.sln)を開き、コンテキストメニューの[PARASOFT] – [ビューの表示] – [カバレッジ]を選択します。
表示されたカバレッジのビューから ▼ – [インポート] – [ローカル ファイルまたは URL...]を選択します。
前の手順で作成した reports\coverage.xml を絶対パスで指定します。
計測したアプリケーションカバレッジのデータがVisual Studio上で閲覧できます。
dotTEST Desktopエディションのライセンスをお持ちの場合
Visual Studio上で作業を行う前に、dotTESTの設定を変更します。この手順は初回の1度のみ実施してください。
<dottest_install_dir>\edit_properties.exe を実行します。
例)C:\Program Files\Parasoft\dotTEST\2022.2\edit_properties.exe
エディタが起動し dottestcli.propertiesが開きますので、以下の行を追加します。
既にdottest.unit_testing.dynamic_coverage_dirの設定が存在する場合は、設定値のみを変更してください。dottest.unit_testing.dynamic_coverage_dir=<ターゲットスクリプトのディレクトリ(カバレッジ計測用ファイルを生成する絶対パス)
例)dottest.unit_testing.dynamic_coverage_dir=C\:\\Users\\admin\\Documents\\Parasoft\\dotTEST\\Coverage\\CoverageLogs
追加もしくは変更が完了したらファイルを保存し、エディタを閉じてください。Visual Studio上でアプリケーションカバレッジの計測データを変換するための設定を行います。
Visual Studioを起動し、コンテキストメニューから[PARASOFT] – [オプション]を選択します。
オプションのウィンドウが開きますので、[Configuration]から、テストコンフィギュレーションを[Builtin]内の"Calculate Application Coverage"をダブルクリックするか
または、右クリックし[アクティブとして選択]を選択します。
[アクティブ]の表記が「Calculate Application Coverage」に変わったことを確認した後、[OK]ボタンを押下し、ウィンドウを閉じてください。Visual Studio上でアプリケーションカバレッジの計測データを読み込みます。
コンテキストメニューから[PARASOFT] – ["Calculate Application Coverage"の実行]を選択します。計測したアプリケーションカバレッジのデータがVisual Studio上で閲覧できます。