IntelliJ IDEA'da birden çok modülden birlikte birim testleri çalıştırın


89

Aynı anda iki veya daha fazla IDEA modülünden tüm testleri nasıl çalıştırabilirim?

Birçok modül kullanıyorum ve tüm birim testlerini sık sık çalıştırmak önemli ve çalıştırmak için birden fazla klasör seçtiğimde, bağlam menüsünde artık 'çalıştır' seçeneği yok.

Yanıtlar:


115

En iyi yol: (3 yıl sonra düzenleyin)

Bunu başarmanın daha iyi bir yolu var.

  1. "Çalıştır" → "Konfigürasyonları Düzenle ..." menüsünü seçin. Sol üst köşedeki yeşil artıya tıklayın ve JUnit'i seçin.

  2. "Kalıp" olarak "Test türü" nü seçin ve bu normal ifadeyi tam olarak gördüğünüz gibi girin: ^(?!.*IT$).*$(düzeltme işareti ^ile başlar ve dolar ile biter $). Bu regexp şunu söyler: kendi adlarında BT ile bitmeyen tüm testler .

  3. "Tüm projede" için "Test ara" yı seçin. Çalışma dizini, üst modül çalışma dizinine ayarlanmalıdır (varsayılan olarak ayarlanmalıdır).

  4. Testiniz için "Tüm Birim testleri" gibi bir Ad girin. Ayrıca bu konfigürasyonun daha sonra kaybolmaması için "Paylaş" seçeneğini işaretlemeyi tercih ediyorum. Uygula ve Tamam'ı tıklayın.

İhtiyaçlarınıza uyması için bu normal ifadeyi deneyebilirsiniz.

Orijinal cevap:

Rahat olmasa da yapılabilir.

  1. İlk modülü seçin, test/javadizine sağ tıklayın ve "Tüm Testleri Çalıştır" seçeneğine tıklayın. Test konfigürasyonu oluşturur.
  2. "Yapılandırmaları düzenle" yi seçin ve kaydedilmesi için yeni oluşturulan yapılandırmada "Paylaş" ı işaretleyin.
  3. Üzerinde ikinci modül olan "Tüm Testleri Çalıştır" ı seçin ve bu yapılandırmada da "Paylaş" ı işaretleyin.
  4. "Başlamadan önce" bölümünde, "+" öğesini tıklayın ve "Başka Bir Yapılandırmayı Çalıştır" ı seçin ve ardından ilk modülün yapılandırmasını seçin.

Bu şekilde konfigürasyonları bir sırayla çalıştırırsınız ve her konfigürasyon yeni bir sekme alır. Yine de hiç yoktan iyidir.


Teşekkürler! Açık ara en temiz yol. 3 yıl sonra bunu başarmanın daha iyi bir yolu olup olmadığını merak ediyorum :)
CoderSpinoza

Teşekkürler! Sen benim zaman kaydedilir ve bu kadar hala tarafından ben hem çoklu kapsama rapor oluşturma ve birleşik durumda yolluk sorunu çözmek için bir bulabileceğiniz en zeki yoludur tek seferde .
Fei

Yanıtlayıcımı daha iyi bir çözümle düzenledim @CoderSpinoza
Tomasz Kalkosiński

11
Güncellenmiş sürüm o kadar iyi değil , eğer test senaryolarınız çalışma zamanı sırasında modüle özgü kaynakları kullanıyorsa - yine de orijinal çözümü tercih ederim.
Fei

Gradle bağımlılıklarıma saygı duymak için bu yapılandırmayı nasıl elde edebilirim? Şimdi, Guava'dan eksik derslerde başarısız oluyor. Tek bir modülün testlerini çalıştırırken iyi çalışıyor.
Jorn

22

Bir "Çalıştırma Yapılandırması" oluşturmanız gerekir:

  1. "Yap" düğmesinin sağ tarafında üstteki açılır menüye gidin ve üzerine tıklayın
  2. "Yapılandırmaları Düzenle" yi seçin
  3. Şimdi yeni bir çalıştırma yapılandırması eklemek için "+" düğmesini tıklayın ve JUnit'i seçin
  4. Ardından, "Yapılandırmayı Çalıştır" ı yapılandırırken, bir "Test Türü" açılır menüsü bulacaksınız, "Dizindeki tüm sınıflar" ı seçin
  5. Kök olarak kullanmak istediğiniz dizini seçin, projeniz için en üst düzey dizini veya modülleriniz için dizinlerden herhangi birini seçebilirsiniz.
  6. Sınıf yolunu aldığınız IntelliJ modülünü seçin (bir sınıf yolu varsa üst düzey proje olabilir)

İpucu için teşekkürler, ancak sorunu çözmüyor. Mükemmel yol, yalnızca bir tane değil, birkaç dizin seçmek olacaktır. Kesin çözüm, desen kullanmaktır, ancak yine de yalnızca paketi
desenleyebilir

15
"Test Türü" nde "Tümü pakette" seçeneğini seçin ve ardından "Tüm projede" onay kutusunu seçin. Bu, tüm Modüllerde testler çalıştıracaktır.
Martin Odhelius

5
Her modülün çalışma dizini olarak kendi modül diziniyle çalışmasını istiyorum - bu mümkün görünmüyor, her şey için tek bir modül dizini kullanıyor gibi görünüyor.
2014

@MartinOdhelius şu ana kadarki en temiz çözüm
Hemil

10

Tüm modülleri seçin, üzerlerine sağ tıklayın ve tüm testleri çalıştırmayı seçin. Bu, "Tüm Proje" adlı bir yapılandırma oluşturacaktır. , istediğiniz zaman yeniden çalıştırabileceğiniz .

Bunu kabul edilen cevaptan daha iyi buldum çünkü bu, birim testlerini her modül için ayrı ayrı çalıştırıyor. Test senaryolarınız çalışma süresi boyunca modüle özgü kaynakları kullanırsa, kabul edilen cevabın en iyi yolu işe yaramayacaktır.

Tüm modülleri seçin

Tüm modülleri seçin

Sağ tıklayın ve tüm testleri çalıştırmayı seçin

Sağ tıklayın ve tüm testleri çalıştırmayı seçin

Yeni bir çalıştırma yapılandırması edinin

Yeni bir çalıştırma yapılandırması edinin


İlk adımda birden fazla modül seçmek yeterlidir.
user7610

2
Bence bu kabul edilen cevap olmalıdır. Sahip olduğum tek rezervasyon, "en kolay" terimini kullanmak. Maalesef Intellij ile çalıştırma yapılandırmalarının kolay bir yanı yok. Yapılandırmalarla basit görevleri yapmanın birçok yolu vardır ve genellikle iş varsa yalnızca bir tane vardır. Bu nedenle, göreviniz genellikle işe yarayan seçeneği arayan tüm farklı seçenekleri yinelemektir. Hiç de kolay değil.
David Sackstein

Bu , modüllerin küçük bir kısmını seçmeme rağmen projedeki tüm testleri çalıştırır (Tüm proje). İstediğim bu değil. Benim durumumda, ortak bir paketi paylaşmak için testler çalıştırmak istediğim tüm modüller, bu nedenle sonuçta ortaya çıkan 'Tüm proje' yapılandırmasını düzenleyebilir ve testi yalnızca modüllerin alt kümesi için çalıştırmak üzere filtreleyen Paketi ekleyebilirim.
Albert Vila Calvo

5

Benim için her iki çözüm de işe yaramadı veya beklendiği gibi çalışmadı.

Benim için 3 modülüm var. Modül bağımlılıklarım şuna benziyor

Sunum -> Etki Alanı -> Veri

Sadece tüm testleri birlikte yapmak istedim. Bu yüzden 'Modül bağımlılıkları arası' yaklaşımını buldum

Ayarlarım şuna benzer:

görüntü açıklamasını buraya girin


2

Bu, birden fazla modül içeren bir proje için benim için çalıştı.

Yeni bir JUnit çalıştırma / hata ayıklama yapılandırması oluşturun. Test türü: 'Hepsi pakette' Testleri ara: 'Tüm proje'

Ayrıca bir çalışma dizini de belirtmeniz gerekecektir.


Ben de öyle yaptım.
miva2

1

Çok açık olmayan bir başka durum, birden fazla projede kod kapsamına ihtiyaç duyulduğu zamandır. Saf çözüm, birden fazla proje seçmek ve tüm birim testlerini aynı anda çalıştırmak olacaktır. Anlaşıldığı üzere, sınıf yolu değişirse ve IntelliJ, çalıştırma yapılandırması başına tam olarak bir sınıf yolu girdisine sahipse birim testleri başarısız olabilir. Bu durumda, ardışık olarak projeler üzerinde birim testleri çalıştırmak aslında yeterlidir. Bunun nedeni, her çalışmanın sonunda IntelliJ'in (2017.2.5 Community Edition) toplanan kapsamın daha önce toplanan kapsam istatistiklerinin yerini alması veya bunlara eklenmesi gerekip gerekmediğini sormasıdır.

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.