Kelas Tidak Ditemukan: Suite Tes Kosong di IntelliJ

183

Saya baru memulai program ilmu komputer di kampus saya, dan saya mengalami beberapa masalah dengan IntelliJ. Ketika saya mencoba menjalankan unit test, saya mendapatkan pesan

Process finished with exit code 1
Class not found: "edu.macalester.comp124.hw0.AreaTest"Empty test suite.

Saya juga melihat pesan berjudul "Tidak ada tes yang ditemukan" di sisi kiri layar saya. Kode pengujian saya ada di sini:

package edu.macalester.comp124.hw0;


import org.junit.Test;
import static org.junit.Assert.*;

public class AreaTest {

    @Test
    public void testSquare() {
    assertEquals(Area.getSquareArea(3.0), 9.0, 0.001);
    }

    @Test
    public void testCircle() {
    assertEquals(Area.getCircleArea(3.0), 28.2743, 0.001);
    }
}

Dan kode proyek saya ada di sini:

package edu.macalester.comp124.hw0;

import java.lang.Math;
public class Area {

/**
 * Calculates the area of a square.
 * @param sideLength The length of the side of a square
 * @return The area
 */
public static double getSquareArea(double sideLength) {
    // Has been replaced by correct formula
    return sideLength * sideLength;
}

/**
 * Calculates the area of a circle.
 * @param radius The radius of the circle
 * @return The area
 */
public static double getCircleArea(double radius) {
    // Replaced by correct value
    return radius * 2 * Math.PI;
}

}

Bagaimana saya bisa menjalankan tes saya? Saya menggunakan versi terbaru dari IntelliJ IDEA CE.

arnbobo
sumber
8
Banyak hal bisa salah. Bagi saya, itu sederhana seperti mengetik mvn clean packagedi terminal. Tidak yakin mengapa IntelliJ mengimpor proyek dengan salah pada awalnya.
MarkHu
1
Bagi saya, buat saja folder itu sebagai "test resource root" ...
Xin Meng
Build -> Clean and Build -> Rebuild sudah cukup bagi saya.
gustavoknz

Jawaban:

109

Punya pesan yang sama. Saya harus menghapus konfigurasi Run / Debug.

Dalam kasus saya, saya menjalankan tes unit sebagai tes lokal sebelumnya. Setelah itu saya memindahkan tes saya ke paket androidTest dan mencoba menjalankannya lagi. Android Studio mengingat konfigurasi jalankan terakhir sehingga mencoba menjalankannya lagi sebagai uji unit lokal yang menghasilkan kesalahan yang sama.

Setelah menghapus konfigurasi dan menjalankan tes lagi menghasilkan konfigurasi baru dan berfungsi.

masukkan deskripsi gambar di sini

com2ghz
sumber
Saya pikir dalam banyak kasus solusi Anda akan menjadi yang paling universal dan paling ajaib. Bekerja di proyek saya seperti pesona.
ba3a
Saya mencobanya tetapi tidak berhasil sendiri. Saya juga harus memvalidasi uang tunai. File > Cashes / Restart
Lukasz
Saya mencobanya dan juga membatalkan uang tunai. Tapi tetap tidak berhasil.
Sayap
Ini bekerja untuk saya setelah saya ingat untuk mengklik tombol ok jelas daripada hanya menutup kotak dialog :-)
rimsky
Saya tidak melihat entri "Pelari instrumentasi spesifik" di Android Studio saya.
david
59

saya pergi ke

File -> Invalidate Caches/Restart...

dan kemudian itu berhasil untuk saya.

pengguna674669
sumber
6
Saya melakukan ini, dan kemudian juga harus menghapus konfigurasi tes.
Johan Henkens
Itu tidak membantu dalam kasus saya.
user3791111
File> Cache / Restart Tidak
Valid
49

Saya memiliki masalah yang sama. Saya membangun kembali proyek, dan itu membantu saya.

Pergi ke Build -> Rebuild Project

Setelah itu, jika Anda menggunakan alat Maven, saya sarankan gunakan opsi Reimport All Maven Projects


Jika tidak membantu, coba solusi lain yang mungkin:

  • Pergi ke File -> Cache / Restart Tidak Valid -> Validasi dan Restart

atau:

  • Dalam struktur proyek Maven Anda src / main / java klik kanan pada direktori java dan pilih opsi Tandai direktori sebagai -> Sumber Root

    Demikian pula melakukan hal yang sama dengan direktori tes sehingga: src / test / java klik kanan pada direktori java dan pilih opsi Tandai direktori sebagai -> Sumber Uji Root

atau:

  • Pergi ke Jalankan -> Edit Konfigurasi dan pada bagian JUnit hapus konfigurasi pengujian. Menerapkan perubahan. Setelah itu coba jalankan tes Anda. Konfigurasi baru harus dibuat secara otomatis.

atau:

  • Buka File -> Struktur Proyek , pilih Modul , lalu pilih modul yang tepat dan buka tab Paths .
    Periksa opsi:
    Tombol radio Gunakan jalur kompilasi modul yang harus dipilih.

    Jalur keluaran harus ada di dalam proyek Anda. Jalur output Uji juga harus berupa direktori di dalam proyek Anda. Sebagai contoh dapat terlihat serupa:
    Jalur output: C: \ path \ to \ your \ module \ yourModule \ target \ class
    Tes jalur Output: C: \ path \ to \ your \ module \ yourModule \ target \ test-class

    Kecualikan output jalan harus dipilih.
Schakal
sumber
10
Membangun kembali proyek ( Build -> Rebuild Project) adalah yang berhasil bagi saya. Terima kasih!
Francisco C.
Solusi ini bekerja untuk saya, hal terakhir tentang modul dan menggunakan jalur keluaran. Terima kasih.
Mohammad Ganji
Sebagai solusi yang lebih putus asa, hapus file .idea dan buka proyek lagi. Anda akan kehilangan beberapa konfigurasi / pengaturan, namun.
Aaron
Pengaturan <project-root>/src/test/javasebagai root uji, dan Build -> Rebuild Projectbekerja untuk saya. Juga ketika kelas yang berisi tes dalam paket dengan nama paket dimulai dengan java.*, saya mendapat Pengecualian Keamanan.
Ketua Master
Masalahnya adalah bahwa dependensi sudah usang
dellasavia
17

Ini juga dapat terjadi, jika folder pengujian Anda telah diimpor sebagai modul terpisah (kotak kecil ditampilkan pada ikon folder dalam tampilan proyek).
Lepaskan modul dengan memilih folder uji pada tampilan proyek dan tekan DEL.
Kemudian mulailah tes Anda.
Jika dialog sembulan muncul dengan pesan kesalahan, bahwa tidak ada modul yang dipilih, tentukan modul root Anda dari dropdown.

Tobi
sumber
3
Ini juga masalah saya (persegi pada folder tes - tidak akan tahu apa artinya itu!); untuk memperbaikinya, saya membuka konfigurasi jalankan dan menemukan bahwa "Gunakan jalur kelas modul:" telah disetel ke modul uji. Saya mengubahnya ke jalur kelas proyek saya, dan itu bekerja dengan baik. Terima kasih telah menunjukkan gotcha "modul terpisah"!
Redboots
Inilah yang terjadi pada saya. Saya membuat proyek Musim Semi menggunakan start.spring.io dan membukanya. Setelah itu saya memulai SpringBootTest dan berlari ke kesalahan "Kelas tidak ditemukan:" ... "Empty test suite". Setelah mengikuti solusi Anda dan menekan tombol DELETE pada folder tes dan membuat ulang konfigurasi run semuanya baik-baik saja. Petunjuk tambahan: Ketika menekan tombol hapus pada folder tes muncul dialog yang mengatakan sesuatu seperti "tidak ada file yang akan dihapus". Jadi tidak perlu takut menekan tombol.
kleenxcoder
14

Saya memiliki masalah yang sama setelah memulai proyek IntelliJ baru. Saya menemukan bahwa "jalur kompilasi modul keluaran" untuk modul saya tidak ditentukan dengan benar. Ketika saya menetapkan jalur di "kompilasi jalur keluaran" modul ke lokasi yang tepat, masalahnya terpecahkan. Jalur keluaran kompilasi ditetapkan dalam pengaturan Proyek. Di bawah Modul, pilih modul yang terlibat dan pilih tab Paths ...

Tab Paths di Pengaturan Proyek | Dialog modul

tangkapan layar

... Saya mengirim output kompiler ke folder bernama "output" yang ada di folder Project induk.

DStanton
sumber
14

Dalam kasus saya, saya memiliki semua yang lain di tempat yang tepat, tetapi saya sedang mengerjakan perpustakaan java dengan kotlin . Saya hanya lupa menerapkan plugin:

apply plugin: 'kotlin-android'

Dan sekarang ini berfungsi seperti yang diharapkan sekarang.

crgarridos
sumber
1
Sama untuk ku. Sangat menyebalkan karena tidak ada opsi Kotlin saat membuat modul.
Rupert Rawnsley
11

Jadi, masalah saya di sini adalah dengan nama folder. Saya telah memanggil folder kode saya Kelas 2016/2017, yang tidak disukai IntelliJ. Cukup hapus garis miring (atau karakter menyinggung lainnya di jalur), impor ulang proyek, dan Anda akan baik-baik saja!

arnbobo
sumber
Ini membantu saya. Bagi yang lain, saya punya folder di Dropbox. Ketika saya memindahkannya dari Dropbox dan mengimpor kembali, masalahnya hilang.
Mick Sear
Jawaban ini layak untuk hadiah perdamaian yang mulia!
Ali Abbas Jaffri
7

Di Android Studio 3.0 +, kadang-kadang tes UI ditafsirkan sebagai unit test dan tidak meminta pemilihan penyebaran target. Anda dapat pergi ke Edit Konfigurasi dan menandainya sebagai tes Integrasi dan itu akan mulai berfungsi

Tushar Nallan
sumber
Juga, pada Android Studio 3.0.1 tombol jalankan di sebelah tes tidak berfungsi. Setelah memperbarui ke 3.1 kenari 8 itu mulai bekerja lagi.
Marc
6

Jika proyek memiliki masalah kompilasi maka tes mungkin tidak berjalan. Jadi pertama membangun proyek sebagai Build -> Build Project. Setelah kompilasi berhasil, jalankan kembali tes.

Jika tidak ada yang berhasil maka cukup tutup jendela proyek dan hapus proyek dan impor kembali sebagai proyek Gradle / Maven yang akan mengatur segalanya untuk Anda dengan menimpa file yang dibuat IntelliJ yang ada. Ini akan menghapus cache tidak valid yang dibuat.

Anda juga bisa membatalkan cache.

File -> Invalidate Caches/Restart

swapnil
sumber
5

Saya memiliki pertanyaan yang sama ketika saya mengimpor beberapa jardari Maven, dan kemudian, menyebabkanempty-test-suite kesalahan.

Dalam kasus saya, itu karena pakar pengaturan ulang file modul. Yang saya atasi dengan menghapus konfigurasi default saya:

  1. Buka struktur Proyek dengan shift- ctrl- alt- spintasan

Cuplikan Layar Sumber PModules

  1. Lihatlah Modul> Sumber dan isi paket Sumber atau Paket tes.
tyrantqiao
sumber
5

Mengimport ulang proyek atau modul dapat menyelesaikan masalah. Saya membuat masalah ini dengan mengganti nama nama paket saat berkembang. Tetapi jalur keluar dan jalur keluaran uji adalah jalur lama. Jadi intellij tidak dapat menemukan kelas dari jalan lama. Jadi cara termudah adalah mengoreksi jalur keluar dan menguji jalur keluaran.

Pengaturan modul Intellij

Bejond
sumber
Untuk beberapa alasan mewarisi jalur proyek tidak bekerja untuk saya di MacO, apakah Anda punya ide mengapa itu bisa terjadi?
Johnny_D
@ Johnny_D Apakah Anda yakin masalah Anda disebabkan oleh ganti nama paket?
Bejond
5

Saya memiliki masalah yang sama (Android Studio 3.2 Canary 4) dan saya mencoba sebagian besar saran yang dijelaskan dalam jawaban lain - tanpa hasil. Perhatikan ini terjadi setelah saya memindahkan file dari testkeandroidTest folder. Itu masih ditampilkan dalam konfigurasi run sebagai tes bukan tes instrumented.

Saya akhirnya membuat file baru:

  1. Buat kelas tes baru yang diinstrumentasi dengan nama berbeda.
  2. Salin semua kode dari kelas Anda.
  3. Menjalankannya.
  4. Hapus kelas lama.
  5. Ubah nama kelas baru menjadi nama yang diinginkan.
Micer
sumber
Bukan ide yang buruk =) Terima kasih!
Andrew Grow
5

Menariknya, saya menghadapi masalah ini berkali-kali karena alasan yang berbeda. Untuk mis. Mengesahkan cache dan memulai kembali juga telah membantu.

Terakhir saya memperbaikinya dengan memperbaiki jalur output saya di File -> Struktur Proyek -> Proyek -> Output Kompilator Proyek ke: absolute_path_of_package / out

untuk misalnya: / Pengguna / orang-acak / myWorkspace / src / DummyProject / out

beberapa pria acak
sumber
Ini yang membuat test suite saya berjalan! Terima kasih!
Frank
3

Ini juga akan terjadi ketika modul Anda dan / atau proyek-jdk tidak dikonfigurasi dengan benar.

Maarten Dhondt
sumber
Tolong jelaskan "konfigurasi yang tepat" Saya tidak berpikir ini bermanfaat untuk pengguna dengan masalah ini. Terima kasih!
pembuat telur
3

Menghapus .ideadan mengimpor kembali proyek SBT memecahkan masalah ini untuk saya.

jhegedus
sumber
Ini berfungsi setelah menghapus folder .idea dan mengimpor kembali proyek pakar (y)
Amine Soumiaa
Ini sama bagi saya. Saya pergi melalui saran di atas tetapi tidak ada yang berhasil. Saya menghapus folder .idea base dan juga file .iml di submodules.
Dennis
3

Dalam kasus saya, IntelliJ tidak mengkompilasi sumber tes karena alasan aneh. Saya hanya memodifikasi konfigurasi build dan menambahkan tujuan pakar clean test-compiledi Before launchbagian

vatbub
sumber
Mencoba semua hal di atas, tetapi hanya ini yang membantu :) Terima kasih!
Antenka
2

Dalam kasus saya ada masalah dengan nama tes :).

Jika namanya: dummyNameTestmaka tidak mendapatkan tes di mana ditemukan, tetapi jika testDummyNamesemuanya baik-baik saja

Inweo
sumber
1

Saya memiliki masalah yang sama. Dalam kasus saya, saya memiliki beberapa kelas uji dalam paket / folder di luar folder utama. Tetapi ketika saya memeriksa konfigurasi Run, selalu berusaha mencari kelas di dalam folder utama (dan bukan paket saya di luar main). Jadi jika itu masalahnya, Anda juga harus memindahkan paket ke tempat konfigurasi Run menunjuk. Atau ubah konfigurasi jalankan untuk menunjuk ke paket Anda.

kunci saya
sumber
1

Apakah tes Anda memerlukan perangkat Android (emulator atau perangkat keras)?
Jika demikian, ini disebut "uji instrumen" dan berada di "module-name / src / androidTest / java /".
Jika tidak, ini disebut "uji unit lokal" dan berada di "module-name / src / test / java"

https://developer.android.com/training/testing/start/index.html

Saya mendapat kesalahan yang sama karena saya telah menulis tes unit lokal, tetapi ditempatkan di folder untuk tes instrumen. Memindahkan tes unit lokal ke folder "src / test / java" memperbaikinya untuk saya.

Patrick
sumber
1

Sedang mendapatkan kesalahan yang sama. Perangkat saya tidak terhubung ke studio android. Ketika saya terhubung ke studio. Berhasil. Ini menyelesaikan masalah saya.

Aman Srii
sumber
1

Mungkin karena folder tidak ditetapkan sebagai sumber pengujian, yang dapat dilakukan melalui Pengaturan Modul> Modul.

noego
sumber
1

Bagi saya proyek itu dikompilasi di luar proyek. Saya hanya mengubah jalurnya. Untuk mengubah path (saya menggunakan mac).

  • Buka File -> Struktur Proyek
  • Pergi ke Modul di sisi kiri.
  • Pilih Paths, pilih tombol radio (gunakan jalur kompilasi modul)
  • Berikan jalur keluaran dan jalur keluaran Uji yang ada di dalam proyek Anda
  • Hapus centang Kecualikan jalur output.
  • Pergi ke File -> Klik pada Validasi Cache dan restart
Mukul Aggarwal
sumber
1

Dalam kasus saya, masalahnya diperbaiki dengan masuk ke saya build.gradledan berubah

dependencies {
    testImplementation 'junit:junit:4.12'
}

untuk

dependencies {
    testCompile 'junit:junit:4.12'
}
bremen_matt
sumber
Ini membantu saya juga, secara mengejutkan. Sepertinya itu memaksa kompilasi ulang. Mencoba beberapa pembersihan / cache sebelum tanpa bantuan
Dieter Menne
Untuk apa nilainya, masalah bagi saya diperbaiki seperti solusi yang saya usulkan di atas. Namun, alasannya adalah saya menggunakan plugin yang tidak mendukung perintah 'implementasi'. Jadi saya menyarankan agar Anda ingin melihat apakah beberapa plugin proyek Anda juga memiliki pembaruan. Mungkin pendekatan yang lebih baik adalah memperbarui plugin karena Gradle ingin mencabut perintah "compile"
bremen_matt
1

Saya mencoba semua solusi tetapi tidak ada yang membantu. Pada akhirnya saya menjalankan tes dalam mode debug dan .... mulai bekerja. Mungkin beberapa cache pakar dihapus. Sulit untuk mengatakan. Berhasil. Mencobamvn test -X

radekpakula
sumber
1

Cukup klik tombol kanan mouse Anda pada file di Projects windows dan pilih

"Jalankan YourTest ".

Semuanya baru saja mulai OK sekarang, mungkin karena konfigurasi run yang salah sedang dibangun kembali.

WebComer
sumber
1

Ini dapat terjadi (setidaknya sekali untuk saya;) setelah menginstal versi baru IntelliJ dan plugin IntelliJ belum diperbarui.

Anda mungkin harus melakukan secara manual Check for updates…dari menu Bantuan IntelliJ.

Peter Lamberg
sumber
1

Dalam struktur proyek Maven Anda src / main / java klik kanan pada direktori java dan pilih opsi Tandai direktori sebagai -> Sumber Root

Demikian pula lakukan hal yang sama dengan direktori pengujian sehingga: src / test / java klik kanan pada direktori java dan pilih opsi Tandai direktori sebagai -> Sumber Uji Root

Bekerja untuk saya :-)

Tn. Tidak ada
sumber
1

ikuti langkah-langkah di bawah ini di Intellij (dengan tangkapan layar untuk pemahaman yang lebih baik):

  1. pergi ke File -> Struktur proyek

masukkan deskripsi gambar di sini

  1. arahkan ke modul dan sekarang pilih modul, di mana file tes Junit Anda hadir dan pilih tombol radio "Gunakan modul kompilasi keluaran".

  2. Sebutkan jalur folder kelas masing-masing, mirip dengan screenshot yang dilampirkan.

masukkan deskripsi gambar di sini

  1. Lamar dan Oke. Ini berhasil untuk saya!
Jangli_coder
sumber
0

Masalah yang sama di sini menggunakan IDEA 15.0.6, dan tidak ada yang membantu kecuali ketika saya mengganti nama paket kelas tes. Setelah itu saya mengganti nama kembali ke nama aslinya dan masih berfungsi, sehingga tindakan mengubah nama mungkin telah membersihkan beberapa cache.

Alexander Klimetschek
sumber