共用方式為


偵錯 TAEF 測試

偵錯工具組態

根據預設,測試案例會在與TE.exe不同的進程中執行:TE.ProcessHost.exe。

僅偵錯TE.exe (windbg/cdb 的子進程)

如果您使用 cdb 或 windbg 之類的偵錯工具,只要將 '-o' 參數傳遞至偵錯工具即可。 這會將偵錯工具設定為自動偵錯子進程,全部都在相同的偵錯工具實例內。

例如:

windbg -o te.exe MyTests.dll

然後,若要切換至執行測試的程式,請使用 | (管道) 命令。 切換進程的管道命令會作為切換執行緒的 ~ (tilda) 命令使用。

例如:

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

執行 「InProc」 (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 選項。