C++test では、デバッガーを使ってテスト ケースをステップ実行し、コードの内部の状態を詳しく検証できます。たとえば、どのように C++test が予想外の出力を取得したのか、なぜテスト ケースが失敗したのかを詳しく知りたい場合などにテスト ケースをデバッグします。このとき、ユーザーが自分でコードにブレークポイントをセットする必要はありません。ユーザーが選択したテスト ケース関数の先頭に C++test が自動的にブレーク ポイントをセットします。テストのデバッグは、コンパイラのデバッガーを使って実行することも、Eclipse IDE から直接デバッグすることも可能です。
このセクションの内容
テスト ケース デバッグのサポート
C++test は、次のデバッガーを使って 2 種類のモードでテスト ケースのデバッグをサポートします。
- Eclipse または Visual Studio の内部デバッガー
- 外部のデバッガー
開発環境によって、どのモードのテスト ケース デバッグを選択するべきかが決まります。Visual Studio IDE を使用する場合、Visual Studio の内部デバッガーを選択できるはずです (詳細については、C++test Visual Studio 版のドキュメントを参照してください)。開発環境が Eclipse IDE での直接デバッグをサポートする場合、テスト コンフィギュレーションで Eclipse の内部デバッガーを選択できるはずです。開発環境が Eclipse 内でのデバッグをサポートしていない場合も、テスト ケースのデバッグ用の外部デバッガーを構成できます。
ネイティブ開発の場合、C++test は次のデバッガーをサポートします。
- GNU GCC コンパイラと gdb デバッガーおよび ddd デバッガー フロントエンド
- Sun CC コンパイラと gdx デバッガー
- コマンドライン インターフェイスから起動および構成できる他のデバッガー (「デバッガーの設定」を参照)
- Eclipse の内部デバッガー (CDT)
- Visual Studio の内部デバッガー
組込み開発の場合、C++test は次のデバッガーをサポートします。
- Texas Instruments Code Composer Studio (バージョン 5.x)
- QNX Momentics IDE (SDP 6.4 & 6.5)
- MDK-ARM (バージョン 4.12 以降)
- Lauterbach Trace32 デバッガー (リリース Feb/2013 以降)
- Spansion SOFTUNE (FR) Development Tools for Eclipse (V01L02)
デバッガーの設定
C++test は、2 種類のモードでのテスト ケース デバッグに対応して設定できます。
- IDE (Eclipse/VisualStudio) での内部的なデバッグ
- 外部デバッガーによるデバッグ
Eclipse IDE でのデバッグを有効にするには、次の操作を行います。
- テスト ケースの実行に使用するテスト コンフィギュレーションを開きます。
- [実行] > [実行時] タブをクリックします。
- [テスト ケースのデバッグ オプション] の [デバッガーでテストを実行する(*)] チェックボックスをオンにします。
- [Eclipse の内部的なデバッガーとデバッグ構成を使用する] を選択し、ドロップダウン メニューからEclipse デバッグ構成を選択していることを確認します。
IDE の内部デバッガー モードの場合、C++test は選択された Eclipse デバッグ構成を使って、テスト用実行モジュールの実行と IDE でのデバッグ モードへの切り替えを自動化します。詳細については、「内部デバッガー モードでのデバッグ」 を参照してください。
外部デバッガーを使ったデバッグを有効にするには、次の操作を行います。
- テスト ケースの実行に使用するテスト コンフィギュレーションを開きます。
- [実行] > [実行時] タブをクリックします。
- [テスト ケースのデバッグ オプション] の [デバッガーでテストを実行する(*)] チェックボックスをオンにします。
[外部のデバッガーを使用] を選択します。
外部デバッガー モードの場合、開発環境によっては、さらに設定が必要なことがあります。詳細については 「外部デバッガーを使ったデバッグ」を参照してください。
内部デバッガー モードでのデバッグ
Eclipse デバッグ構成の準備
既存の Eclipse デバッグ構成を使ってテスト ケースをデバッグできます。動作する Eclipse デバッグ構成がない場合、まずデバッグ構成を用意する必要があります。Eclipse デバッグ構成の設定の詳細については、使用している開発環境のドキュメントを参照してください。
C++test のテスト コンフィギュレーションで指定する前に、Eclipse デバッグ構成を使ってオリジナル プロジェクト コードをデバッグできるかどうか検証することを推奨します。
Standard Create Process ランチャーの使用(standard CDT/Native development)
デバッグ構成の場合、デバッガーを選択することができるので、Standard Create Process ランチャーの使用を推奨します。デフォルトの Eclipse ランチャー (GDB DSF) の Create Process ランチャーではデバッガーを選択できません。Standard Create Process ランチャーを選択するには、[ウィンドウ] メニューの [設定] をクリックし、[設定] ダイアログで [実行/デバッグ] > [起動中] > [デフォルト ランチャー] をクリックします。
選択した Eclipse デバッグ構成の使用
- テスト ケースの実行に使用するテスト コンフィギュレーションを開きます。
- [実行] > [実行時] タブをクリックします。
- [Eclipse の内部的なデバッガーとデバッグ構成を使用する] を選択し、ドロップダウン メニューからEclipse デバッグ構成を選択していることを確認します。既存の Eclipse デバッグ構成の名前をリロードするために [リフレッシュ] をクリックする必要がある場合があります。
外部デバッガーを使ったデバッグ
ネイティブ開発でのテスト ケースのデバッグ
- GCC コンパイラのデフォルト デバッガーは gdb です。
- Sun CC コンパイラのデフォルト デバッガーは dbx です。
- xxgdb および ddd デバッガーもサポートされます。
C++test は以下のコマンドラインを使ってデフォルト デバッガーを起動します。
- GNU GCC/Windows:
cmd.exe /C gdb -x %s
- GNU GCC/Linux:
LC_ALL=C /usr/X11R6/bin/xterm -e gdb -x %s &
デバッガーまたはデバッガー コマンドラインの変更
- プロジェクトのプロジェクト ツリー ノードを右クリックし、ショートカット メニューの [プロパティ] をクリックします。[プロパティ] ダイアログが開きます。
- [Parasoft] > [C++test] > [その他] を選択します。
- [詳細] オプションの表で [追加] をクリックし、新しいエントリを追加します。
- 次の書式を使って [オプション] にコマンドラインを追加します。
testrunner.debuggerCommandLine <COMMAND_LINE
>
例:
- xxgdb デバッガーを使用するために、次のコマンドを使用します。
testrunner.debuggerCommandLine /usr/X11R6/bin/xterm -e xxgdb -x %s &
- ddd デバッガーを使用するために、次のコマンドを使用します。
strunner.debuggerCommandLine ddd -x %s &
組込み開発のためのテスト ケースのデバッグ
C++test は、開発環境の特定の機能に基づいて、組込み開発環境でのテスト デバッグをサポートします。詳細については 「テスト ケースのデバッグ」 を参照してください。
デバッガーを使ったテスト実行
このセクションでは、ネイティブ開発環境でテストをデバッグする方法について説明します。組込み環境でテストをデバッグする方法については 「テスト ケースのデバッグ 」 を参照してください。
使用しているコンパイラのデバッガーを使ってテストを実行するには、次の操作を行います。
- Debug Unit Tests テスト コンフィギュレーションを準備します。
- ビルトイン テスト コンフィギュレーションの Debug Unit Tests を使用するか、Debug Unit Tests ビルトイン テスト コンフィギュレーションを複製してカスタム テスト コンフィギュレーションを作成します 。(カスタム テスト コンフィギュレーションの作成については、「テストコンフィギュレーションとルールの設定」を参照)。
- 次の操作を行って、ビルトインまたはカスタムの Debug Unit Tests テスト コンフィギュレーションを実行します。
- 以下のいずれかの方法で、デバッグするテスト ケースを選択します。
- テスト ケース エクスプローラーでテスト ケースを選択します。
コード エディターでテスト ケースの関数名を選択します。
プロジェクト エクスプローラーでテスト ケース関数を選択します (CDT 4.x+ Managed C/C++ プロジェクトの場合、この操作はできません) 。
ビルトインまたはカスタムの Debug Unit Tests テスト コンフィギュレーションを実行します。たとえば、選択対象を右クリックし、[Parasoft] ショートカット メニューからテスト コンフィギュレーションを実行します。適切なデバッガーが起動し、選択した各テスト ケース関数の先頭でブレークポイントが自動的に設定されます。
- 以下のいずれかの方法で、デバッグするテスト ケースを選択します。
標準のデバッガー機能を使ってテスト ケースをステップ実行します。
Standard Create Process ランチャーの使用
デバッグ構成の場合、デバッガーを選択することができるので、Standard Create Process ランチャーの使用を推奨します。この設定を行うには、[ウィンドウ] メニューの [設定] をクリックし、[設定] ダイアログで [実行/デバッグ] > [起動中] > [デフォルト ランチャー] をクリックします。デフォルトの Eclipse ランチャー (GDB DSF) の Create Process ランチャーでは、デバッガーを選択することはできません。