Bagikan melalui


Men-debug Pengujian TAEF

Konfigurasi debugger

Secara default, kasus pengujian dijalankan dalam proses terpisah daripada TE.exe: TE.ProcessHost.exe.

Proses Debugging Anak TE.exe (hanya windbg/cdb)

Jika Anda menggunakan debugger seperti cdb atau windbg, Anda cukup meneruskan sakelar '-o' ke debugger. Ini akan mengonfigurasi debugger untuk secara otomatis men-debug proses anak, semuanya dalam instans debugger yang sama.

Contohnya:

windbg -o te.exe MyTests.dll

Kemudian untuk beralih ke proses di mana pengujian Anda berjalan, gunakan | perintah (pipa). Perintah pipa untuk beralih proses digunakan exaclty sebagai perintah ~ (tilda) untuk beralih utas.

Contohnya:

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

Menjalankan Pengujian "InProc" (Visual Studio/windbg/cdb)

Jika Anda lebih suka menggunakan Visual Studio untuk melakukan penelusuran kesalahan, metode di atas tidak akan berfungsi untuk Anda. Dalam hal ini, cukup konfigurasikan debugger Anda untuk menjalankan TE.exe, atur titik henti yang sesuai untuk kasus pengujian, dan teruskan sakelar /inproc ke TE.exe. Ini akan memastikan bahwa semua pengujian dijalankan dalam proses TE.exe daripada menelurkan proses baru.

Contohnya:

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

Perintah di atas akan meluncurkan Visual Studio. Selanjutnya buka kode sumber untuk kasus pengujian Anda dan atur titik henti yang sesuai. Terakhir, tekan F5 untuk memulai kasus pengujian Anda dan itu harus rusak pada titik henti pertama Anda (jika simbol Anda telah dimuat dengan benar).

Langkah-langkah yang dijelaskan di atas hanya berfungsi dengan simbol yang benar yang diatur di Visual Studio. Setidaknya, Anda perlu mengatur simbol ke dll pengujian yang Anda debugging. Untuk mengatur simbol di Visual Studio:

  • Pilih Menu Alat
  • Pilih Opsi...
  • Pilih Debugging di menu tampilan pohon kiri
  • Pilih Simbol di bawah Penelusuran Kesalahan
  • Masukkan jalur simbol di bawah lokasi File simbol (*.pdb): bagian
  • Simpan pengaturan Anda

Secara otomatis Masuk ke Debugger ("breakOnCreate" dan "breakOnInvoke")

Untuk memudahkan proses debugging, Taef menyediakan kemampuan untuk secara otomatis masuk ke debugger sebelum setiap kelas pengujian dibuat dan/atau sebelum setiap metode pengujian dipanggil.

Contohnya:

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

Perintah di atas akan meluncurkan Te.exe di bawah cdb. Taef akan masuk ke debugger tepat sebelum setiap kelas pengujian dibuat, dan sebelum setiap metode pengujian dipanggil.

Catatan: Disarankan agar Anda menggunakan fitur ini saat menjalankan Te.exe di bawah debugger, dan juga menspesifikasikan opsi /inProc.