Saat menjalankan junit
tes di eclipse
saya mendapatkan ini Exception
:
java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
Saya telah menambahkan junit.jar
file perpustakaan.
Saya sudah mencoba berbagai versi junit.jar: 4.4
, 4.8
, dll
Bagaimana cara memperbaiki Pengecualian ini?
junit.jar
tidak terkait dengan masalahharcrest
toples, apakah hierarkinya sama? seperti diorg > hamcrest > SelfDescribing
, atau di folder root dari jar?Jawaban:
Tambahkan
hamcrest-all-X.X.jar
ke jalur kelas Anda .Versi terbaru per Feb 2015 adalah 1.3: http://code.google.com/p/hamcrest/downloads/detail?name=hamcrest-all-1.3.jar&can=2&q=
sumber
hamcrest-all-X.X.jar
sudah cukup sementara jauh lebih kecil.Menurut situs web tim JUnit GitHub ( https://github.com/junit-team/junit/wiki/Download-and-Install ),
junit.jar
danhamcrest-core.jar
keduanya diperlukan di jalur kelas saat menggunakan JUnit 4.11.Berikut adalah blok ketergantungan Maven untuk menyertakan junit dan hamcrest.
sumber
Beberapa langkah yang harus Anda ikuti:
sumber
Cocok untuk saya: IntelliJ IDEA 13.1.1, JUnit4, Java 6
Saya mengubah file di jalur proyek: [PROJECT_NAME] .iml
Diganti:
Oleh:
Jadi file .iml terakhir adalah:
PS: simpan file dan jangan biarkan IntelliJ Idea memuat ulang. Hanya sekali.
sumber
Anda memerlukan junit-dep.jar karena junit.jar memiliki salinan kelas Hamcrest lama.
sumber
Masalah ini karena classpath Anda miss hamcrest-core-1.3.jar. Untuk mengatasi ini tambahkan hamcrest-core-1.3.jar saat Anda menambahkan junit-4.XX.jar ke classpath Anda.
Pada awalnya, saya mengalami masalah ini juga, tetapi setelah saya merujuk ke situs resmi dan menambahkan hamcrest-core-1.3.jar ke classpath dengan baris perintah, akhirnya berfungsi dengan baik.
sumber
Sebagai aturan umum, selalu pastikan hamcrest berada sebelum pustaka pengujian lainnya di classpath, karena banyak pustaka seperti itu menyertakan kelas hamcrest dan oleh karena itu dapat bertentangan dengan versi hamcrest yang Anda gunakan. Ini akan menyelesaikan sebagian besar masalah dari jenis yang Anda gambarkan.
sumber
Kalau-kalau ada orang di sini yang menggunakan netbeans dan memiliki masalah yang sama, yang harus Anda lakukan hanyalah
Ini seharusnya menyelesaikan masalah
sumber
Anda perlu menambahkan JAR hamcrest-core ke jalur kelas seperti yang dijelaskan di sini: https://github.com/junit-team/junit4/wiki/Download-and-Install
sumber
Kedengarannya seperti masalah jalur kelas, jadi ada beberapa cara berbeda untuk mengatasinya. Dari mana asal org / hamcret / SelfDescribing? Apakah itu kelas Anda atau di toples yang berbeda?
Coba masuk ke proyek Anda Build Path dan pada tab Libraries, tambahkan Library. Anda harus dapat memilih JUnit untuk proyek Anda. Ini sedikit berbeda dari hanya memiliki file jar JUnit di proyek Anda.
Di Run Configuration untuk pengujian JUnit, periksa Classpath. Anda mungkin dapat memperbaikinya dengan menambahkan memastikan bahwa Classpath Anda dapat melihat kelas SelfDescribing di sana. Opsi Jalankan di Eclipse memiliki serangkaian opsi berbeda untuk opsi JUnit.
sumber
Jika masalah ini muncul dalam proyek RCP, itu mungkin karena JUnit telah diimpor secara eksplisit.
Periksa editor untuk tab Anda di
plugin.xml
bawahDependencies
, hapusorg.junit
dari Paket yang Diimpor dan tambahkanorg.junit
ke Plug-in yang Diperlukan.sumber
Masalahnya adalah saat Anda menyiapkan gerhana untuk mengarah ke JRE, bukan JDK . JRE ada
junit4.jar
dilib/ext
foldernya, tapi tidakhamcrest.jar
:) Jadi solusinya adalah memeriksa JRE yang terinstal di Eclipse, hapus yang sudah ada dan buat yang baru menunjuk ke JDK Anda .sumber
cara termudah untuk memecahkan masalah untuk memulai adalah menyalin versi terbaru dari hamcrest-code.jar ke dalam CLASSPATH Anda yang merupakan file yang Anda simpan file .jar lain yang diperlukan untuk kompilasi dan menjalankan aplikasi Anda.
itu bisa jadi misalnya: C: / ant / lib
sumber
Ini terjadi ketika Anda menjalankan Ant melalui baris perintah. Dependensi pengguna implisit ditambahkan di classpath di bagian akhir dan lebih diutamakan daripada classpath yang ditambahkan proyek. Jalankan Ant dengan
-nouserlib
bendera. Dependensi implisit akan dikecualikan dari classpath.sumber
Ada jawaban yang lebih baik untuk mengatasi masalah ini. tambahkan ketergantungan
sumber
Saya memiliki masalah yang sama, solusinya adalah menambahkan build path / plugin ke jar org.hamcrest.core_1xx, Anda dapat menemukannya di eclipse / plugins.
sumber
Beberapa langkah yang harus Anda ikuti:
Ini bekerja untuk saya ...
sumber