<p>testng 7.1.0 java.lang.ClassNotFoundException: com.google.inject.Stage</p>

Dibuat pada 12 Jan 2020  ·  38Komentar  ·  Sumber: cbeust/testng

Versi TestNG

TestNG 7.1.0

Perilaku yang diharapkan

Perilaku sebenarnya

tes integrasi jarak jauh testng gagal
https://travis-ci.org/testng-team/testng-remote/jobs/481901771

[RemoteTestNG] revisions:
    git.commit.id=32c8977
    git.branch=32c8977911e409c8c8c2d4bce973e94d2acf5ca7
    git.build.version=1.4.1-SNAPSHOT
[RemoteTestNG] loaded class org.testng.internal.Version at file:/home/travis/.groovy/grapes/org.testng/testng/jars/testng-7.1.0.jar
[RemoteTestNG] detected TestNG version 7.1.0
Caught: java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: com/google/inject/Stage
java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: com/google/inject/Stage
    at org.testng.internal.Configuration.<init>(Configuration.java:33)
    at org.testng.TestNG.init(TestNG.java:216)
    at org.testng.TestNG.<init>(TestNG.java:200)
    at org.testng.remote.AbstractRemoteTestNG.<init>(AbstractRemoteTestNG.java:17)
    at org.testng.remote.support.RemoteTestNG6_12.<init>(RemoteTestNG6_12.java:18)
    at org.testng.remote.support.RemoteTestNGFactory6_12.createRemoteTestNG(RemoteTestNGFactory6_12.java:16)
    at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:67)
    at org.testng.remote.RemoteTestNG$main.call(Unknown Source)
    at TestNGTest.run(TestNGTest.groovy:49)
Caused by: java.lang.NoClassDefFoundError: com/google/inject/Stage
    ... 9 more
Caused by: java.lang.ClassNotFoundException: com.google.inject.Stage
    ... 9 more
[BaseMessageSender] Stopped receiver

Apakah masalah dapat direproduksi pada runner?

  • [ ] Kerang
  • [ ] Maven
  • [ ] Gradle
  • [ ] Semut
  • [ ] Gerhana
  • [ ] IntelliJ
  • [ ] NetBeans

Contoh kasus uji

Tolong, bagikan test case (sekecil mungkin) yang menunjukkan masalahnya
https://github.com/testng-team/testng-remote/blob/master/remote-test/src/test/groovy/Tester.groovy

Komentar yang paling membantu

Eclipse IDE untuk Pengembang Java, Versi: 2019-12 (4.14.0), Build id: 20191212-1212.
TestNG 7.1.0.r202001120626

Menghapus perpustakaan TestNG dari jalur pembuatan proyek yang berisi pengujian dan menginstal TestNG dari menu Bantuan / Instal Perangkat Lunak Baru tidak berfungsi untuk saya, saya terus mendapatkan kesalahan ini.

Apa yang berhasil bagi saya adalah mengunduh guice-4.2.2.jar (dari https://github.com/google/guice/wiki/Guice422), menyalinnya ke folder apa pun, dan menambahkannya ke jalur pembangunan proyek sebagai eksternal STOPLES.

Semua 38 komentar

@kehilangan

Di 7.0.0 pom di bawah ini adalah informasi ketergantungan pada guice

<dependency>
    <groupId>com.google.inject</groupId>
    <artifactId>guice</artifactId>
    <version>4.1.0</version>
    <classifier>no_aop</classifier>
    <scope>provided</scope>
</dependency>

Di 7.1.0 pom di bawah ini adalah informasi ketergantungan pada guice

<dependency>
    <groupId>com.google.inject</groupId>
    <artifactId>guice</artifactId>
    <version>4.1.0</version>
    <classifier>no_aop</classifier>
    <scope>compile</scope>
</dependency>

Jadi mungkin masalah ini karena guice menjadi ketergantungan waktu kompilasi dari ketergantungan yang disediakan?

Diragukan. Ketergantungan sekarang lebih sulit daripada sebelumnya.

Perhatikan bahwa kesalahannya adalah NoClassDefFound , bukan ClassNotFound . Guice kehilangan ketergantungan, sepertinya.

Membuat ketergantungan waktu kompilasi guice menurut saya sebagai arah yang salah. Dan BTW, itu tidak kompatibel ke belakang, jadi perubahan seperti itu seharusnya hanya dalam versi utama.

Ini hanya api .

Jika pom.xml dihasilkan sebagai compile , ini terlihat seperti bug di Gradle(?).

Yah, pakar (yaitu pom.xml ) tidak memiliki cakupan "hanya api". Ini diperlukan untuk kompilasi dan sedang diekspos oleh api -> compile scope.

BTW, apa yang akan terjadi, jika saya memiliki guice yang diperlukan dalam proyek dalam versi yang tidak kompatibel yang berbeda? Apakah kompatibel ke belakang?

Panduan kompilasi ketergantungan waktu: https://github.com/cbeust/testng/blob/master/src/main/Java/org/testng/internal/Configuration.java#L33

jadi susah ketergantungan

perbaikannya adalah menjadikan Guice ketergantungan kompilasi dalam manifes pom atau membuat init malas injectorFactory

silakan hapus file jar dari jalur build dan instal TestNG dari menu bantuan (instal perangkat lunak)
bekerja untuk saya

Eclipse IDE untuk Pengembang Java, Versi: 2019-12 (4.14.0), Build id: 20191212-1212.
TestNG 7.1.0.r202001120626

Menghapus perpustakaan TestNG dari jalur pembuatan proyek yang berisi pengujian dan menginstal TestNG dari menu Bantuan / Instal Perangkat Lunak Baru tidak berfungsi untuk saya, saya terus mendapatkan kesalahan ini.

Apa yang berhasil bagi saya adalah mengunduh guice-4.2.2.jar (dari https://github.com/google/guice/wiki/Guice422), menyalinnya ke folder apa pun, dan menambahkannya ke jalur pembangunan proyek sebagai eksternal STOPLES.

silakan hapus file jar dari jalur build dan instal TestNG dari menu bantuan (instal perangkat lunak)
bekerja untuk saya

Bisakah Anda memberi saya tautan untuk menginstal plugin dari "Instal perangkat lunak baru"

silakan hapus file jar dari jalur build dan instal TestNG dari menu bantuan (instal perangkat lunak)
bekerja untuk saya

Bisakah Anda memberi saya tautan untuk menginstal plugin dari "Instal perangkat lunak baru"

Dari Eclipse, Buka Bantuan > Instal perangkat lunak atau Anda dapat menginstal dari pasar juga (Bantuan > Market Place). Setelah menginstal TestNG dari pasar, itu tidak berfungsi, tetapi menginstal GICE422.jar ke jalur build berhasil untuk saya
Jadi pastikan setelah menginstal TestNG dari pasar, instal file Guice422 Jar juga

Eclipse IDE untuk Pengembang Java, Versi: 2019-12 (4.14.0), Build id: 20191212-1212.
TestNG 7.1.0.r202001120626

Menghapus perpustakaan TestNG dari jalur pembuatan proyek yang berisi pengujian dan menginstal TestNG dari menu Bantuan / Instal Perangkat Lunak Baru tidak berfungsi untuk saya, saya terus mendapatkan kesalahan ini.

Apa yang berhasil bagi saya adalah mengunduh guice-4.2.2.jar (dari https://github.com/google/guice/wiki/Guice422), menyalinnya ke folder apa pun, dan menambahkannya ke jalur pembangunan proyek sebagai eksternal STOPLES.

Itulah satu-satunya cara yang bekerja untuk saya juga, dan hal yang paling aneh adalah TestNG versi 7.0.1 ditampilkan di konsol terlepas dari versi TestNG yang saya instal adalah 7.1.1. Bagaimanapun itu bekerja sekarang.

@krmahadevan Kami membutuhkan perbaikan ini, kapan rilis TestNG berikutnya?

@yaminikb - Rilisnya akan segera keluar (dalam seminggu atau lebih).

JFI, TestNG saya tampaknya baru saja diperbarui, ke 7.1.1.202003100345, tetapi jika saya menghapus dari jalur build Guice JAR yang harus saya tambahkan secara manual untuk menghindari NoClassDefFoundError, kesalahan muncul kembali.

Jadi bagi saya pembaruan hari ini tidak membuat perbedaan, selain fakta bahwa sekarang saya tidak dapat memastikan versi TestNG mana yang saya miliki: memperluas node TestNG di Package Explorer mengatakan 7.1.0.r202001120626 (yang sama dengan yang sudah saya miliki sejak lama sebelum pembaruan hari ini), dan di bawah C:\Eclipse\plugins, selain 7.1. 0 .* JAR yang sudah saya miliki, sekarang saya juga memiliki dua 7.1. 1 .* JAR yang, seperti yang saya sebutkan, sepertinya tidak digunakan.
Tetapi intinya adalah bagi saya pembaruan ini tidak memengaruhi NoClassDefFoundError: Guice JAR di jalur build sebagai JAR eksternal masih diperlukan untuk saya.

Pembaruan plugin Eclipse bukan untuk memperbaiki masalah ini. Masih perlu menunggu rilis testng baru.

Bagaimana cara menurunkan versi ke versi 7.0.?

[RemoteTestNG] mendeteksi TestNG versi 7.0.1
Pengecualian di utas "utama" java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: com/google/inject/Stage
di org.testng.internal.Configuration.(Konfigurasi.java:33)
di org.testng.TestNG.init(TestNG.java:216)
di org.testng.TestNG.(TestNG.java:200)
di org.testng.remote.AbstractRemoteTestNG.(AbstractRemoteTestNG.java:17)
di org.testng.remote.support.RemoteTestNG6_12.(RemoteTestNG6_12.java:18)
di org.testng.remote.support.RemoteTestNGFactory6_12.createRemoteTestNG(RemoteTestNGFactory6_12.java:16)
di org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:67)
Disebabkan oleh: java.lang.NoClassDefFoundError: com/google/inject/Stage
... 7 lainnya
Disebabkan oleh: java.lang.ClassNotFoundException: com.google.inject.Stage
di java.net.URLClassLoader.findClass(Sumber Tidak Dikenal)
di java.lang.ClassLoader.loadClass(Sumber Tidak Dikenal)
di sun.misc.Launcher$AppClassLoader.loadClass(Sumber Tidak Dikenal)
di java.lang.ClassLoader.loadClass(Sumber Tidak Dikenal)
... 7 lainnya

Saya menghadapi masalah ini dengan ramah saran ..

@mlook172 , Anda dapat mencoba menginstal versi beta di Eclipse Anda:
"Bantuan -> Instal Perangkat Lunak Baru.. -> rekatkan url situs pembaruan di bawah ini ke bidang Work with: "
https://dl.bintray.com/testng-team/testng-p2/updatesites/7.2.0.b202003151750/

itu bekerja dengan baik sekarang

Terima kasih

7.2.0.r202003151902 telah memperbaiki masalah ini, terima kasih!

Terima kasih banyak

Bekerja untuk saya juga. Terima kasih !

Saya juga menghadapi masalah yang sama. Terima kasih. Ini bekerja untuk saya sekarang

Eclipse IDE untuk Pengembang Java, Versi: 2019-12 (4.14.0), Build id: 20191212-1212.
TestNG 7.1.0.r202001120626

Menghapus perpustakaan TestNG dari jalur pembuatan proyek yang berisi pengujian dan menginstal TestNG dari menu Bantuan / Instal Perangkat Lunak Baru tidak berfungsi untuk saya, saya terus mendapatkan kesalahan ini.

Apa yang berhasil bagi saya adalah mengunduh guice-4.2.2.jar (dari https://github.com/google/guice/wiki/Guice422), menyalinnya ke folder apa pun, dan menambahkannya ke jalur pembangunan proyek sebagai eksternal STOPLES.

Itu memaafkan kesalahan. Tetapi semua kasus uji dilewati/gagal dalam memperkenalkan guice.jar
image

@twinki1624 , dapatkah Anda mencoba dengan komentar saya: https://github.com/cbeust/testng-Eclipse/issues/472#issuecomment -599251156

@twinki1624 , dapatkah Anda mencoba dengan komentar saya: cbeust/testng-Eclipse#472 (komentar)

Sayangnya, sekarang masih berfungsi.
image

Bisakah Anda membimbing saya melalui langkah-langkah lain? Saya sedang mengerjakan proyek, perlu diselesaikan paling cepat.

@twinki1624 , untuk masalah url https DTD ini, mohon perbarui plugin testng Eclipse ke situs pembaruan terbaru: https://dl.bintray.com/testng-team/testng-Eclipse-release

@twinki1624 , untuk masalah url https DTD ini, mohon perbarui plugin testng Eclipse ke situs pembaruan terbaru: https://dl.bintray.com/testng-team/testng-Eclipse-release

Saya mencobanya menggunakan tautan di atas, bantuan> instal perangkat lunak baru, tidak diinstal.
image

Setiap gerakan ini? Saya melihat masalah yang sama.

Pengecualian di utas "utama" java.lang.BootstrapMethodError: java.lang.NoClassDefFoundError: com/google/inject/Stage

Setiap gerakan ini? Saya melihat masalah yang sama.

Versi Anda mungkin tidak mutakhir, masalahnya telah diperbaiki dengan 7.2.0.r202003151902

Instal TestNG 7.1 dan kemudian instal pustaka P2 dari TestNG 7.2
"Bantuan -> Instal Perangkat Lunak Baru.. -> rekatkan url di bawah ini Bekerja dengan: bidang"
https://dl.bintray.com/testng-team/testng-Eclipse-release/
Eclipse dimulai ulang, sekali lagi:
"Bantuan -> Instal Perangkat Lunak Baru.. ->
https://dl.bintray.com/testng-team/testng-p2-release/

Saya juga menghadapi masalah yang sama. Saya mencoba semua solusi di atas tidak ada yang berhasil untuk saya

[RemoteTestNG] mendeteksi TestNG versi 7.0.0
Pengecualian di utas "utama" java.lang.NoSuchMethodError: org.testng.TestNG.configure(Lorg/testng/CommandLineArgs;)V
di org.testng.remote.AbstractRemoteTestNG.configure(AbstractRemoteTestNG.java:75)
di org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:235)
di org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

Saya mencoba mencocokkan semua plugin verion dan jar testng

Untuk testNG p2- saya menggunakan url ini https://dl.bintray.com/testng-team/testng-p2-release/7.0.0/

Dapatkah seseorang tolong bantu saya di sini

Ini bukan masalah yang sama, Anda memiliki NoSuchMethodError, bukan NoClassDefFoundError. Cari penyebab NoSuchMethodError. JAR ditemukan dalam kasus Anda, tetapi Anda mungkin memiliki beberapa ketidakcocokan versi, mungkin JAR lama.
Sebagai hal pertama yang saya akan menghapus TestNG dan melakukan penginstalan ulang penuh dari versi terbaru, terutama jika Anda telah mencoba solusi yang berbeda.

@santibailors terima kasih atas balasan Anda.

Saya juga, mencobanya, menghapus instalan TestNG dan menginstal ulang versi terbaru, tidak berhasil.

sekali lagi saya menghapus versi terbaru TestNG7.0.0 yang diinstal hanya untuk mempertahankan versi yang sama untuk file jar dan plugin.

Meskipun saya tidak yakin apakah itu yang seharusnya terjadi,

Saya tidak tahu bagaimana itu tidak berhasil sehingga sulit untuk mengatakan banyak, tetapi jika Anda bermaksud bahwa Anda mendapatkan NoSuchMethodError bahkan dari penginstalan ulang yang bersih, saya akan terkejut. Bagaimanapun, berdasarkan apa yang diketahui, jika itu saya, saya akan menginstal Eclipse lain di folder terpisah (tidak akan mengganggu instalasi Eclipse yang ada), memastikan itu Eclipse terbaru, lalu instal TestNG di sana, melalui pasar. Jika masih memberikan NoSuchMethodError itu akan sangat aneh.

Anda juga dapat mencoba menghapus instalan TestNG, tutup Eclpise, hapus dari subfolder plugins Eclipse semua JAR yang dimulai dengan org.testng sebelum menginstal ulang TestNG dari pasar.

Perhatikan juga bahwa dari stacktrace Anda, jelas bahwa NoSuchMethodError tidak ada hubungannya dengan Guice atau perpustakaan eksternal lainnya, jadi Anda harus benar-benar membuka masalah baru, masalah Anda tidak terkait dengan yang dibahas di utas ini. Dan mungkin dengan memberikan judul tertentu ke utas baru Anda bisa mendapatkan bantuan yang lebih fokus.

Saya sudah mencoba semuanya pada hal-hal baru, tetapi sekali lagi saya akan mencoba hal yang sama, mungkin saya kehilangan beberapa hal penting.

Juga, saya menyalin file pom.xml saya sebelumnya (hanya dependensi) di yang baru, karena memiliki banyak toples yang diperlukan dalam proyek saya. mungkin itu juga alasannya..

sekali lagi terima kasih @SantiBailors

Menghapus file jar TestNG dari jalur build dan menambahkan ketergantungan berikut ke POM.

org.testng
ujian
7.1.0
uji

Itu berhasil untuk saya.

@SantiBailors0 Anda menyelamatkan hari saya setelah membuang waktu 3-4 jam untuk menemukan jawaban yang benar. Menambahkan ketergantungan GICE4.2.2 berfungsi seperti pesona. Terima kasih sobat

Apakah halaman ini membantu?
0 / 5 - 0 peringkat