次の方法で共有


TAEF テストのデバッグ

デバッガーの構成

既定では、テスト ケースは、TE.exe: TE.ProcessHost.exeとは別のプロセスで実行されます。

TE.exe の子プロセスのデバッグ (windbg/cdb のみ)

cdb や windbg などのデバッガーを使用する場合は、単純に '-o' スイッチをデバッガーに渡すことができます。 これにより、同じデバッガー インスタンス内のすべての子プロセスを自動的にデバッグするようにデバッガーが構成されます。

例えば次が挙げられます。

windbg -o te.exe MyTests.dll

次に、テストを実行するプロセスに切り替えるには、 |(パイプ) コマンド。 プロセスを切り替えるためのパイプ コマンドは、スレッドを切り替えるための ~ (チルダ) コマンドとして exaclty を使用します。

例えば次が挙げられます。

|1s - sets the current process to the second loaded process.

テスト"インプロク"の実行 (Visual Studio/windbg/cdb)

Visual Studio を使用してデバッグを行う場合、上記の方法は機能しません。 この場合は、TE.exe実行するようにデバッガーを構成し、テスト ケースに適切なブレークポイントを設定し、/inproc スイッチを TE.exeに渡します。 これにより、すべてのテストが新しいプロセスを生成するのではなく、TE.exe プロセス内で実行されるようになります。

例えば次が挙げられます。

start devenv /debugexe te.exe MyTests.dll /inproc

上記のコマンドを実行すると、Visual Studio が起動します。 次に、テスト ケースのソース コードを開き、適切なブレークポイントを設定します。 最後に、F5 キーを押してテスト ケースを開始します。最初のブレークポイントで中断します (シンボルが正しく読み込まれている場合)。

上記の手順は、Visual Studio で設定された正しいシンボルでのみ機能します。 少なくとも、デバッグするテスト dll にシンボルを設定する必要があります。 Visual Studio でシンボルを設定するには:

  • [ツール] メニューの選択
  • オプションの選択...
  • 左側のツリー表示メニューの [デバッグ] を選択する
  • [デバッグ] の下の [シンボル] を選択する
  • シンボル ファイル (*.pdb) の場所セクションにシンボル パスを入力します。
  • 設定を保存する

デバッガーに自動的に割り込む ("breakOnCreate" と "breakOnInvoke")

デバッグ プロセスを容易にするために、Taef は、各テスト クラスがインスタンス化される前または各テスト メソッドが呼び出される前に、デバッガーに自動的に中断する機能を提供します。

例えば次が挙げられます。

cdb -gG te.exe MyTests.dll /inproc /breakOnCreate /breakOnInvoke

上記のコマンドは、cdb の下で Te.exe を起動します。 Taef は、各テスト クラスがインスタンス化される直前と、各テスト メソッドが呼び出される前にデバッガーに分割されます。

注: デバッガーで Te.exe を実行しているときにこの機能を使用し、/inProc オプションも指定することをお勧めします。