Saya mencoba untuk memecahkan masalah JUnit. Dalam kode sumber, saya telah menetapkan break point di dua tempat: 1) di baris di mana anggota statis diinisialisasi 2) baris pertama dari salah satu kasus uji.
Debugger berhenti di baris inisialisasi bidang statis. Tapi itu tidak berhenti pada kasus uji. Tidak peduli di mana saya menetapkan break point dalam kasus uji, debugger tidak berhenti di situ. Saya tahu pasti bahwa test case dijalankan karena saya dapat melihat pesan log yang saya tambahkan muncul di log.
Bantuan apa pun akan sangat dihargai.
Saya menggunakan peluncur Eclipse Galileo dan JUnit4.
Jawaban:
Ini mungkin terkait dengan salah satu bug di JDK 6 Pembaruan 14, seperti yang ditunjukkan dalam catatan rilis untuk JDK 6 pembaruan 15 .
Jika ternyata ini masalahnya, Anda harus pindah ke versi JDK yang lebih tinggi (meskipun itu bukan jaminan, karena perbaikan telah dirilis terhadap 6u16, 6u18, dan 7b1 ). Taruhan terbaik adalah menggunakan flag -XX: + UseParallelGC. Meningkatkan ukuran ukuran heap minimum dan maksimum, untuk menunda GC pertama, membawa bantuan sementara.
Omong-omong, gunakan laporan bug ini di Eclipse untuk melacak bagaimana keadaan orang lain.
sumber
Perbaiki bisa sesederhana mengklik run / lewati semua breakpoint. Bekerja untuk saya.
sumber
Pastikan, di bawah Run> Debug Configurations, bahwa 'Stop in main' dipilih, jika berlaku untuk situasi Anda.
sumber
Biasanya ketika ini terjadi pada saya (jarang tetapi memang terjadi) berarti kode yang dijalankan berbeda dengan kode di editor. Ini akan terjadi dari waktu ke waktu untuk Eclipse bahwa kelas yang dibangun dan kode di editor tidak sinkron. Ketika itu terjadi, saya mendapatkan semua jenis perilaku debugger yang aneh (men-debug baris kosong, melewati baris kode, dll).
Memulai ulang Eclipse, membersihkan semua proyek dan membangun kembali semuanya biasanya menyelesaikan semuanya. Saya juga memiliki plugin Maven (versi lama ... sudah lama tidak memilikinya) yang memiliki kecenderungan untuk melakukannya juga.
Jika tidak, itu mungkin bug, mungkin yang dikatakan Vineet,
Semoga ini membantu
sumber
Anda mungkin tidak sengaja melewatkan semua break point di toolbar Eclipse. Untuk memperbaikinya pergi ke Eclipse -> Run -> Skip All Breakpoints.
sumber
Project -> Clean sepertinya berhasil untuk saya di JRE 8
sumber
Untuk men-debug bekerja dengan remote, file java .class harus dipatuhi bersama dengan informasi debugging. Jika opsi " -g: none " diberikan ke compiler maka file kelas tidak akan memiliki informasi yang diperlukan dan karenanya debugger tidak akan dapat mencocokkan breakpoint pada kode sumber dengan kelas tersebut di remote. Sementara itu, jika file jars / class di- obfuscate , maka mereka juga tidak akan memiliki info debug. Menurut tanggapan Anda, kemungkinan besar ini bukan kasus Anda, tetapi info ini dapat berguna bagi orang lain yang menghadapi masalah yang sama.
sumber
Dalam kasus saya, masalahnya adalah saya tidak membuka tampilan Debug dalam perspektif Debug, jadi:
1 - Pastikan Anda membuka perspektif debug:
2 - Pastikan Anda membuka tampilan debug:
sumber
Hapus semua breakpoint dan tambahkan kembali.
sumber
Untuk JDK7, run-> Debug Configurations, centang "Keep JUnit running after a test run when debugging".
sumber
Terjadi pada saya sekali, ketika saya telah menghapus centang "Jalankan> Bangun secara otomatis" dan lupa untuk memeriksanya kembali.
sumber
Pastikan Anda mendeklarasikan paket di bagian atas. Dalam kode groovy saya, ini berhenti di breakpoint:
Ini tidak berhenti di breakpoint:
sumber
Untuk menghapus breakpoint :
sumber
Juga verifikasi apakah breakpoint di baris lain DO berfungsi, mungkin ada bug di debugger. Saya punya masalah dengan debugger Eclipse di mana meletakkan breakpoint pada tugas boolean yang kodenya ada di baris berikutnya tidak berfungsi. Saya melaporkan ini di sini , tetapi meletakkannya di baris sebelumnya atau berikutnya berhasil.
sumber
Jika tidak ada yang berhasil-
sumber
Masalah lain yang mungkin adalah port debugger mungkin diblokir oleh firewall. Misalnya, saya menggunakan mule anypoint studio (v 5.4.3). Port debugger default adalah 6666. Saat aliran dijalankan, aliran tidak akan berhenti di breakpoint. ketika saya mengubah port ke port lain (misalnya 8099), itu berfungsi dengan baik.
sumber
Buka
Right click->Debug Configuration
dan periksa apakah terlalu banyak instance debug yang dibuat. Masalah saya teratasi ketika saya menghapus beberapa contoh debug dari konfigurasi dan baru mulai melakukan debug.sumber
Jika Anda menggunakan Eclipse,
Klik kanan pada folder proyek Anda di bawah "Package Explorer".
Goto Source -> Bersihkan dan pilih proyek Anda.
Ini akan membersihkan semua kekacauan dan break-point Anda seharusnya berfungsi sekarang.
sumber
Membuat ruang kerja baru berhasil untuk saya.
sumber
Dalam kasus saya, saya memiliki banyak proyek di ruang kerja yang sama. File java yang saya coba debug ada di lebih dari satu proyek dengan paket yang sama.
Saya tidak memerlukan proyek lain, jadi cukup tutup proyek yang tidak terkait (atau hapus file dari proyek yang tidak terkait).
sumber
Satu komentar tambahan tentang jawaban Vineet Reynolds.
Saya menemukan bahwa saya harus mengatur
-XX:+UseParallelGC
dieclipse.ini
Saya menyiapkan argumen mesin virtual (vm) sebagai berikut
yang memecahkan masalah.
sumber
Inilah yang berhasil untuk saya:
Saya harus meletakkan alamat server lokal saya di konfigurasi Server PHP seperti ini:
Catatan : alamat itu, adalah yang saya konfigurasikan di file .conf Apache saya .
Catatan : satu-satunya breakpoint yang berfungsi adalah 'Break di baris pertama', setelah itu, breakpoint tidak berfungsi.
Catatan : periksa properti xdebug Anda di file php.ini , dan hapus semua yang menurut Anda tidak diperlukan.
sumber