Sınıf Bulunamadı: IntelliJ'de Boş Test Paketi


183

Kolejimde bilgisayar bilimi programına yeni başlıyorum ve IntelliJ ile bazı sorunlar yaşıyorum. Birim testleri yapmaya çalıştığımda mesajı alıyorum

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

Ayrıca ekranımın sol tarafında "Test bulunamadı" mesajını görüyorum. Test kodum burada:

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);
    }
}

Ve proje kodum burada:

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;
}

}

Testlerimin çalışmasını nasıl sağlayabilirim? IntelliJ IDEA CE'nin en son sürümünü kullanıyorum.


8
Pek çok şey ters gidebilir. Benim için, mvn clean packageterminalde yazmak kadar basitti . IntelliJ'nin projeyi neden başlangıçta yanlış içe aktardığından emin değilim.
MarkHu

1
Benim için sadece "test kaynak kökü" olarak klasör yapmak ...
Xin Meng


İnşa Et -> Temizle ve İnşa Et -> Yeniden Oluştur benim için yeterliydi.
gustavoknz

Yanıtlar:


109

Aynı mesaj vardı. Çalıştır / Hata Ayıkla yapılandırmasını kaldırmam gerekiyordu.

Benim durumumda, daha önce yerel bir test olarak birim testini çalıştırdım. Bundan sonra testimi androidTest paketine taşıdım ve tekrar çalıştırmayı denedim. Android Studio son çalıştırma yapılandırmasını hatırladı, bu yüzden aynı hatayı üreten yerel bir birim testi olarak tekrar çalıştırmayı denedi.

Yapılandırmayı kaldırdıktan ve testi tekrar çalıştırdıktan sonra yeni bir yapılandırma oluşturdu ve çalıştı.

resim açıklamasını buraya girin


Bence çoğu durumda çözümünüz en evrensel ve en az büyülü olurdu. Projemde bir cazibe gibi çalıştı.
ba3a

Denedim ama kendi başına çalışmadı. Ayrıca, Nakitleri Geçersiz Kılmak zorunda kaldım. File > Cashes / Restart
Lukasz

Denedim ve paraları da geçersiz kıldım. Ama yine de çalışmıyor.
kanatlar

Sadece iletişim kutusunu kapatmak yerine bariz ok düğmesini tıklamayı hatırladıktan sonra bu benim için çalıştı :-)
rimsky

Android Studio'mda "Spesifik enstrümantasyon koşucusu" girişi görmüyorum.
david

59

gittim

File -> Invalidate Caches/Restart...

ve sonra benim için çalıştı.


6
Bunu yaptım ve ardından test yapılandırmalarını da silmek zorunda kaldım.
Johan Henkens

Benim durumumda yardımcı olmadı.
user3791111

Dosya> Geçersiz Önbellek / Yeniden Başlat> Just Restart benim için çalıştı
Hashmatullah Noorzai

49

Aynı sorunu yaşadım. Projeyi yeniden inşa ettim ve bana yardımcı oldu.

Derlemeye Git -> Project Yeniden

Bundan sonra, Maven aracını kullanıyorsanız, Tüm Maven Projelerini Yeniden Aktar seçeneğini kullanmanızı öneririm


Yardımcı olmazsa, başka bir olası çözüm deneyin:

  • Git Dosya -> Geçersiz Kılan Önbellekler / Yeniden -> Invalidate'yi ve Yeniden

veya:

  • Senin Maven projesi yapısı içinde src / main / java sağ tıklayıp java dizinine ve birinci seçeneği olarak işaretle dizininde -> Kaynaklar Kök

    Benzer aynı şeyi Test dizini yüzden: src / test / java sağ tıklayıp java dizinine ve birinci seçeneği işaretle dizinine as -> Test Kaynakları Kökü

veya:

  • Çalıştır -> Yapılandırmaları Düzenle'ye gidin ve JUnit test yapılandırmalarını kaldırın bölümünde . Değişiklikleri uygula. Daha sonra testlerinizi yapmayı deneyin. Yeni yapılandırma otomatik olarak oluşturulmalıdır.

veya:

  • Git Dosya -> Proje Yapısı , seçmek Modülleri ardından uygun modülü seçmek ve gidin Yollar sekmesine.
    Kontrol seçenekleri:
    Radyo düğmesi Modül derleme çıkış yolunu kullan seçilmelidir.

    Çıktı yolu projenizin içinde olmalıdır. Ayrıca Test çıkış yolu projenizin içinde dizin olmalıdır. Örneğin benzer görünebilir:
    Çıkış yolu: C: \ yol \ ila \ modül \ modülünüz \ hedef \ sınıflar
    Test Çıkış yolu: C: \ yol \ \ \ modül \ bölgeniz \ hedef \ test-sınıfları

    Çıktıyı hariç tut yolların seçimi kaldırılmalıdır.

10
Projeyi ( Build -> Rebuild Project) yeniden oluşturmak benim için işe yarayan şeydi. Teşekkür ederim!
Francisco C.

Bu çözüm benim için çalıştı, modüller hakkındaki son şey ve bir çıkış yolu kullanmak. Teşekkürler.
Mohammad Ganji

Daha umutsuz bir çözüm olarak, .idea dosyasını silin ve projeyi tekrar açın. Bununla birlikte, bazı yapılandırmaları / ayarları kaybedersiniz.
Aaron

Ayar <project-root>/src/test/javaTest kök olarak ve Build -> Rebuild Projectbenim için çalıştı. Ayrıca test içeren sınıflar paket adı ile başlayan pakette java.*, Güvenlik İstisnası aldım.
Master Chief

Sorun bağımlılıkların modası geçmiş olması
dellasavia

17

Bu, test klasörünüz ayrı bir modül olarak içe aktarılmışsa da olabilir (proje görünümünde klasör simgesinde küçük bir kare gösterilir).
Proje görünümünde test klasörünü seçerek modülü çıkarın ve düğmesine basın DEL.
Ardından testinizi başlatın.
Hata mesajı içeren bir açılır iletişim kutusu görüntülenirse, hiçbir modül seçili değilse, açılır menüden kök modülünüzü belirtin.


3
Bu da benim sorunum (test klasörü kare - bunun ne anlama geldiğini bilemezdim!); düzeltmek için, çalışma yapılandırmasını açtım ve "Modül sınıf yolunu kullan:" ifadesinin test modülüne ayarlandığını gördüm. Bunun yerine projemin sınıf yolunu değiştirdim ve işe yaradı. "Ayrı modül" gotcha işaret ettiğiniz için teşekkür ederiz!
Redboots

Bana tam olarak böyle oldu. Start.spring.io kullanarak bir Bahar projesi oluşturdum ve açtım. Daha sonra SpringBootTest başlattım ve "Sınıf bulunamadı:" ... "Boş test paketi" hatası içine koştu. Çözümünüzü takip ettikten ve test klasöründeki SİL düğmesine bastıktan ve çalıştırma yapılandırmasını yeniden oluşturduktan sonra her şey yolundaydı. Ek ipucu: Test klasöründeki sil düğmesine basıldığında "dosya silinmeyecek" gibi bir iletişim kutusu görüntülenir. Yani düğmeye basmaktan korkmayın.
kleenxcoder

14

Yeni bir IntelliJ projesine başladıktan sonra benzer bir sorun yaşadım. Benim modül için "modül derleme çıkış yolu" düzgün belirtilmedi buldum. Modülün "çıkış yolunu derle" yolunu doğru konuma atadığımda, sorun çözüldü. Derleme çıktı yolu Proje ayarlarında atanır. Modüller altında, ilgili modülü seçin ve Yollar sekmesini seçin ...

Proje Ayarları'ndaki Yollar sekmesi | Modüller iletişim kutusu

ekran görüntüsü

... Derleyici çıktısını üst Project klasöründe bulunan "output" adlı bir klasöre gönderdim.


14

Benim durumumda, her şey doğru yerde vardı, ama kotlin ile bir java kütüphanesi üzerinde çalışıyordum . Sadece eklentiyi uygulamayı unuttum:

apply plugin: 'kotlin-android'

Ve şimdi beklendiği gibi çalışıyor.


1
Benim için de aynı. Modül oluştururken Kotlin seçeneğinin olmaması can sıkıcı bir durum.
Rupert Rawnsley

11

Yani, burada benim sorun klasör isimleri ile oldu. IntelliJ'in beğenmediği kod klasörü Sınıflar 2016/2017'yi aradım. Eğik çizgiyi (veya yoldaki diğer rahatsız edici karakteri) kaldırın, projeyi yeniden içe aktarın ve devam edin!


Bu bana yardımcı oldu. Diğerleri için, klasörü Dropbox'ta buldum. Dropbox'tan çıkıp yeniden içe aktardığımda sorun ortadan kalktı.
Mick Sear

Bu cevap nobel barış ödülünü hak ediyor!
Ali Abbas Jaffri

7

Android Studio 3.0 + 'da, bazen UI testleri bir şekilde birim testleri olarak yorumlanır ve hedef dağıtım seçimini istemez. Yapılandırmayı Düzenle'ye gidip bir Entegrasyon testi olarak işaretleyebilirsiniz ve çalışmaya başlayacaktır.


Ayrıca, Android Studio 3.0.1'de testin yanındaki çalıştırma düğmesi çalışmaz. 3.1 Kanarya 8'e güncelledikten sonra tekrar çalışmaya başladı.
Marc


6

Projenin derleme sorunu varsa, testler çalışmayabilir. Öncelikle Build -> Build Project olarak proje oluşturun. Başarılı derlemeden sonra testi yeniden çalıştırın.

Hiçbir şey işe yaramazsa, sadece proje penceresini kapatın ve projeyi silin ve mevcut IntelliJ tarafından oluşturulan dosyaları geçersiz kılarak sizin için her şeyi ayarlayacak Gradle / Maven projesi olarak yeniden içe aktarın.Bu, oluşturulan geçersiz önbelleği kaldıracaktır.

Ayrıca yalnızca önbelleği geçersiz kılabilirsiniz.

File -> Invalidate Caches/Restart


5

jarMaven'den bazılarını içe aktardığımda ve daha sonra empty-test-suitehataya neden olduğumda aynı soruyu sordum .

Benim durumumda, bunun nedeni, maven'in modül dosyalarını sıfırlamasıydı. Hangi benim varsayılan yapılandırma temizleyerek çözüldü:

  1. Açık Proje yapısı ile shift- ctrl- alt- skısayol

PModules Sources ekran görüntüsü

  1. Modüller> Kaynaklar'a bakın ve Kaynaklar paketini veya test Paketini doldurun.

5

Reimport projesi veya modülü sorunu çözebilir. Bu sorunu geliştirirken paket adını yeniden adlandırarak yaptım. Ancak çıkış yolu ve test çıkış yolu eski yoldur. Böylece intellij sınıfı eski yoldan bulamaz. Bu yüzden en kolay yol çıkış yolunu ve test çıkış yolunu düzeltmektir.

Intellij modül ayarı


Herhangi bir nedenle devralma proje yolu MacO'larda benim için çalışmıyor, neden olabileceği hakkında bir fikrin var mı?
Johnny_D

@Johnny_D Sorununuzun paketi yeniden adlandırma nedeniyle olduğundan emin misiniz?
Bejond

5

Aynı sorunu yaşadım (Android Studio 3.2 Canary 4) ve diğer cevaplarda açıklanan önerilerin çoğunu denedim - herhangi bir başarı olmadan. Dosyayı adresine taşıdıktan sonra bunun olduğuna testdikkat edinandroidTest klasöre. Çalışma konfigürasyonlarında enstrümanlı test yerine test olarak gösterildi.

Sonunda yeni bir dosya oluşturmakla bitirdim:

  1. Farklı adlarla yeni enstrümanlı test sınıfı oluşturun.
  2. Sınıfınızdaki tüm kodu kopyalayın.
  3. Çalıştır.
  4. Eski sınıfı silin.
  5. Yeni sınıfı istenen adla yeniden adlandırın.

Fena fikir değil =) Teşekkürler!
Andrew Grow

5

İlginçtir, farklı nedenlerden dolayı bu sorunla birçok kez karşılaştım. Örneğin, Önbelleği geçersiz kılmak ve yeniden başlatmak için da yardımcı olmuştur.

Son olarak, Dosya -> Proje Yapısı -> Proje -> Proje Derleyici Çıktısı içindeki çıktı yolumu düzelterek giderdim : absolute_path_of_package / out

örneğin: / Kullanıcılar / rasgele adam / myWorkspace / src / DummyProject / out


Bu benim test paketi çalıştırmak yaptı! Teşekkürler!
Frank

3

Bu, modül ve / veya proje jdk'niz düzgün yapılandırılmadığında da gerçekleşir.


Lütfen "uygun yapılandırma" yı açıklığa kavuşturun. Bunun bu sorunu yaşayan kullanıcılar için yararlı olduğunu düşünmüyorum. Teşekkürler!
19:41

3

.ideaSBT projesinin silinmesi ve yeniden içe aktarılması bu sorunu benim için çözdü.


.İdea klasörünü sildikten ve maven projesini yeniden içe aktardıktan sonra çalışır (y)
Amine Soumiaa

Bu benim için de aynıydı. Yukarıdaki önerileri inceledim ama hiçbiri işe yaramadı. .İdea temel klasörünü ve ayrıca alt modüllerdeki .iml dosyalarını sildim.
Dennis

3

Benim durumumda, IntelliJ garip bir nedenden ötürü test kaynaklarını derlemedi. Yapı yapılandırmasını basitçe değiştirdim clean test-compileve Before launchbölümdeki maven hedefini ekledim


Yukarıdakilerin hepsini denedim, ama sadece bu yardımcı oldu :) Teşekkür ederim!
Anten

2

Benim durumumda test adıyla ilgili bir sorun vardı :).

Ad buysa: dummyNameTesto zaman hiçbir yerde test edin, ancak testDummyNameher şey yolundaysa


1

Aynı sorunu yaşadım. Benim durumumda bir paket / klasör ana klasörün dışında bazı test sınıfları vardı. Ama Çalıştır yapılandırmasını kontrol ettiğimde, her zaman ana klasör içindeki sınıfları aramaya çalışıyordu (ana paketlerimin dışında değil). Bu durumda, paketlerinizi Çalıştırma yapılandırmasının işaret ettiği yere taşımanız gerekir. Veya çalışma yapılandırmasını paketlerinize işaret edecek şekilde değiştirin.


1

Testiniz bir Android cihaz (taklitçi veya donanım) gerektiriyor mu?
Öyleyse, "enstrümanlı test" olarak adlandırılır ve "module-name / src / androidTest / java /" içinde bulunur.
Değilse, buna "yerel birim testi" denir ve "modül adı / src / test / java" da bulunur.

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

Aynı hatayı aldım çünkü yerel birim testi yazdım, ancak enstrümanlı testler için klasöre yerleştirildi. Yerel birim testini "src / test / java" klasörüne taşımak benim için düzeltti.


1

Aynı hatayla karşılaşıyordum. Cihazım android stüdyosuna bağlı değil. Stüdyoda bağlandığımda. İşe yarıyor. Bu benim sorunumu çözdü.


1

Muhtemelen klasör, Modül Ayarları> Modüller aracılığıyla yapılabilen test kaynağı olarak ayarlanmamıştır.


1

Benim için proje proje dışında derlendi. Sadece yolu değiştiriyorum. Yolu değiştirmek için (mac kullanıyorum).

  • Dosya -> Proje Yapısı'na gidin
  • Sol taraftaki Modül'e gidin.
  • Yollar'ı seçin, radyo düğmesini seçin (modül derleme çıkış yolunu kullanın)
  • Projenizin içindeki çıkış yolunu ve Test çıkış yolunu sağlayın
  • Çıktı yollarını hariç tut seçimini kaldırın.
  • Dosya -> Önbelleği Geçersiz Kıl'a tıklayın ve yeniden başlatın

1

Benim durumumda, sorun girmeden benim tarafından düzeltildi build.gradleve değişen

dependencies {
    testImplementation 'junit:junit:4.12'
}

için

dependencies {
    testCompile 'junit:junit:4.12'
}

Bu da benim için şaşırtıcı bir şekilde yardımcı oldu. Daha önce yardım almadan birkaç temizlik / önbellek denedim
Dieter Menne

Değeri ne olursa olsun, benim için sorun yukarıda önerdiğim çözüm gibi düzeltildi. Ancak bunun nedeni, 'uygulama' komutunu desteklemeyen bir eklenti kullanmamdı. Bu nedenle, projenizin bazı eklentilerinin de güncellemeleri olup olmadığını görmek isteyebileceğinizi öneririm. Belki de daha iyi bir yaklaşım, Gradle "derleme" komutunu kullanımdan kaldırmak istediğinden eklentiyi güncellemek olabilir
bremen_matt

1

Tüm çözümleri denedim ama hiçbiri yardımcı olmadı. Sonunda ben hata ayıklama modunda test çalıştırın ve .... çalışmaya başladı. Belki bazı maven'in önbelleği temizlendi. Bunu söylemek zor. İşe yarıyor. Deneyinmvn test -X


1

Projeler penceresindeki dosyada farenizin sağ düğmesini tıklamanız ve

" Testinizi Çalıştırın ".

Muhtemelen hatalı çalıştırma yapılandırması yeniden oluşturuluyor.


1

IntelliJ'in yeni sürümünü ve IntelliJ eklentilerini yükledikten sonra (en azından benim için;) bu henüz güncellenmedi.

Check for updates…IntelliJ Yardım menüsünden manüel olarak yapmanız gerekebilir .


1

Maven proje yapınızdaki src / main / java java dizinine sağ tıklayın ve Dizini farklı kaydet -> Kaynaklar Kökü'nü seçin

Benzer şekilde test dizini ile de aynı şekilde yapın: src / test / java java dizinine sağ tıklayın ve Dizini farklı işaretle -> Test Kaynakları Kökü'nü seçin

Benim için çalıştı :-)


1

Intellij'de aşağıdaki adımları izleyin (daha iyi anlaşılması için ekran görüntüleri ile):

  1. Dosyalar -> Proje yapısı'na gidin

resim açıklamasını buraya girin

  1. modüllere gidin ve şimdi Junit test dosyanızın bulunduğu modülü seçin ve "Modül derleme çıkış yolunu kullan" radyo düğmesini seçin.

  2. Ekli ekran görüntüsüne benzer şekilde ilgili sınıflar klasör yolundan bahsedin.

resim açıklamasını buraya girin

  1. Uygula ve Tamam. Bu benim için çalıştı!

0

Aynı sorun burada IDEA 15.0.6 kullanarak ve test sınıfı içinde olan paketi yeniden adlandırmak dışında hiçbir şey yardımcı olmadı. Daha sonra orijinal adı olarak yeniden adlandırdım ve hala çalıştı, bu yüzden yeniden adlandırma eylem bazı önbellek temizlenmiş olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.