Eclipse'de tek bir JUnit testi çalıştırma


85

Birden fazla test içeren bir test paketim varsa, kod düzenleyicinin bağlam menüsünden veya JUnit görünümünden tek bir birim testi çalıştırmaya çalıştığımda, her zaman tüm paketi çalıştırmakta ısrar ediyor gibi görünüyor. tek test. Bu davranışı değiştirmeyi devre dışı bırakmanın bir yolu var mı, böylece bunu çalıştırmayı isteyebilirim ve sadece bunu test edebilirim.


11
Cevabın yanındaki yeşil işareti kontrol ederek en iyi cevabı seçmeniz iyi olur.
guerda

Yanıtlar:


96

Paket gezgininde sınıfı ortaya çıkarın. Size tüm yöntemleri göstermelidir. Çalıştırmak istediğiniz bir yönteme sağ tıklayın, ardından bağlam menüsünden Farklı Çalıştır -> JUnit'i seçin (Eclipse 3.4.1 ile test edilmiştir). Ayrıca, bir testi yeniden çalıştırmak için JUnit sonuçları görünümünde tek bir girişte "Çalıştır" seçeneğinin seçilmesi aynı şekilde çalışır.


3
Ne yazık ki, bu yalnızca o sınıfta doğrudan uygulanan test yöntemleri için işe yarar. Kalıtsal @Test yöntemleri için çalışmaz.
Christopher Barber

1
Yöntem adına tıklamanız gerektiğini unutmayın. Yöntemin içine tıklamak tüm sınıfı çalıştıracaktır. (Ya da en azından benim için böyle davranıyor.)
emragins

Test etmek istediğiniz yöntemi hızlı bir şekilde bulmaya gelince, yalnızca bu belirli "paket gezgini" ile çalışmak için dikiş atar. Hatta hata ayıklayıcı diğer yöntemleri atlamak için dikiş atar - bu da fazladan zaman harcar. Daha iyi bir yol olmalı ...
Macilias

ve bu da kırılgan ... şimdi tutulma bu şekilde çalışırken diğer testleri atlamamaya karar verdi :(
Macilias

27

Bildiğim en hızlı yol:

  1. Ctrl+ Shift+ Tuşlarına basın (imleci geçerli yöntem bildirimine taşır),
  2. basın Alt+ Shift+ x(veya dhata ayıklama için) daha sonra basın t(için kısayol tuşu "Run JUnit Testi" ),
  3. test sonucunu kontrol edin,
  4. Daha önceki kod satırına geri dönmek için Alt+ tuşuna basın .

Tüm testleri çalıştırmak istiyorsanız, 1. ve 4. adımları atlayabilirsiniz.


13

Eclipse 3.5'te, test çalıştırıcısını JUnit 3'e değiştirerek bunu aşabilirsiniz. Bu, JUnit 4 testleri için değil, yalnızca JUnit 3 testleri için çalışacaktır. Aşağıdakileri yaparak test çalıştırıcısını değiştirebilirsiniz:

  1. Anahat gezginindeki test yöntemlerinden birine sağ tıklayın
  2. Farklı Çalıştır -> Yapılandırmaları Çalıştır'ı seçin
  3. 'Test' sekmesinde, 'Tek bir test çalıştır'ı seçin
  4. Test Çalıştırıcısı açılır menüsünde, 'JUnit 3'ü seçin

Diğer versiyonlarda da çalışabilir.


İyi karar! Çalıştırma yapılandırmaları iletişim kutusundaki "Test Çalıştırıcısı" nın "JUnit 3" olarak değiştirilmesi Eclipse 3.6.0'da (Helios) benim için çalıştı. Şimdi bir JUnit testinde tek bir yöntem çalıştırabilirim. FWIW, JUnit 3 veya 4 test sınıflarını tek tek çalıştırırken hiçbir zaman sorun yaşamadım .
Adam Monsen

Mükemmel bu benim için de çalıştı. Bunun üstündeki cevap, daha fazla olumlu oy almış gibi görünse bile olmadı.
dreza

12

Bu, JUnit 4.8.2 ile Eclipse Indigo'da mümkündür. Bölmede tek tek test etmek istediğiniz yöntemi sağ tıklatıp Outlineseçin Run As -> JUnit Test.

Hatta kaynak düzenleyicide bir Test yöntemi adını seçerek sağ tıklayıp seçebilirsiniz Run As -> Junit Test.


1
bu özel test durumunu test edecek gibi görünüyor. Ancak bundan sonra diğer test durumları ile devam ediyor.
lwpro2

@ lwpro2 Tek bir test durumunu test etmek için JUnit 4 (ek açıklamalar) kullanmanız gerekir. JUnit 3 (TestCase'i genişletme) yine de tüm ilgili testleri çalıştıracaktır.
AnthonyW

1
wulfgar.pro @ lwpro2'ye JUnit testinizi bir JUnit 4 çalıştırıcı ile çalıştırıyorsanız (çünkü örneğin JUnit 4.8.2 kullanıyorsanız) HENÜZ testinizin hala TestCase'i genişlettiğini bildiriyordum. kendi kendine test edin. Bir JUnit 3 çalıştırıcısı kullanmalı veya testinizi ek açıklamalar kullanmaya dönüştürmelisiniz.
AnthonyW

yorumlar için teşekkürler. Ancak, SpringJunit4ClassRunner ile Junit4 kullanıyordum. Neyse, o kadar da önemli değil. ek açıklamayı yorumlamak hızlıdır.
lwpro2

bu cevap en basit
Jackson Tale

9

Strg+ Kullanmayın F11ama Alt+ Shift+ X-> kısayol tuşunu kullanın T.
Ardından Eclipse, mevcut açık dosyayı bir JUnit testi olarak yürütecektir. Yeşil oynatma düğmesi yalnızca son seçilen Çalıştırma Yapılandırmasını çalıştırır.

Benim için iyi çalışıyor Alt + Shift+ X->T .


Teşekkürler. Ancak bir birim testi ile test edilen bir sınıf üzerinde çalıştığınızı söyleyin. Sınıfı değiştirirken, pencereyi UnitTest dosyasına değiştirmeden ilgili UnitTest'i nasıl çalıştırırsınız?
bibstha

@bibstha Ctrl + 3'ü kullanabilir ve ardından "yeniden çalıştır" yazabilirsiniz. Bu, son JUnit test senaryosunu yeniden çalıştırmanıza izin verir. Pencere-> Tercihler-> Genel-> Tuşlar altında, bu eylem için kendi kısayolunu atayabilirsiniz. Bana göre Ctrl + Shift + F11 uygun olur.
guerda

9

Diğerlerine, yalnızca tek bir birim testinde (yöntem) hata ayıklamanıza izin veren oldukça verimli bir klavye ekleyerek ekleyeceğim.

Aşağıdakilerden birini kullanarak imlecinizi yöntem adına taşıyın

  • Ctrl+ Shift+ Upveya
  • Ctrl+ Shift+Downveya
  • Ctrl+ osonra yöntemin adını yazın

İmleciniz yöntem adının üzerindeyken (veya hemen önünde):

  • Alt+ Shift+ D->T (Hata Ayıklama)
  • Alt+ Shift+ X-> T(Çalıştır)

Testi çalıştırdıktan sonra aşağıdakileri yaparak imlecinizin bulunduğu yere geri dönebilirsiniz:

Alt+Back

Neredeyse REPL benzeri davranışı şu şekilde alıyorsunuz:

Ctrl+ Shift+ Upve Alt+ Shift+ X-> TveAlt +Back

Ayrıca hızlı bir şekilde bir kesme noktası belirleyebilirsiniz:

Ctrl+ Shift+B


3

Dosyada test yöntemi adına sağ tıklayın ve "Çalıştır" -> "Önemsiz Test" i seçin. Bunu her zaman Kepler ve JUnit 4 ile yapıyorum.


2

Eclipse 3.4.1 ve JUnit 4 test çalıştırıcısını kullanırken diğerlerinin yaşadığı aynı sorunu yaşadım - tek bir test yapamadım. Ama başka bir yerde sorunu çözen bir öneri buldum. Test sınıfım hala junit.framework.TestCase'i genişletiyordu. TestCase'i genişletmeyi bıraktığımda her şey yolunda gitti ve JUnit 4 test çalıştırıcısı ile tek JUnit testleri çalıştırabildim. Elbette, JUnit 4 ek açıklamalarının iddia yöntemleri için statik içe aktarmalar kullanması gerekiyordu, ancak bunu zaten yapmıştım - TestCase mirasını kaldırmamıştım.


1

Birden fazla dosyada çok sayıda testiniz varsa ve yalnızca belirli bir dosyada testleri çalıştırmak istiyorsanız, o dosyaya sağ tıklayıp farklı çalıştır -> junit test'i seçebilirsiniz. Şimdi, çok sayıda test içeren bir dosyada bulunan tek bir testi çalıştırmak istiyorsanız, tahminim (burada tutulma yüklü değil) Anahat görünümü bir dosya için tüm test yöntemlerini listeleyecek ve muhtemelen şunları yapabileceksiniz. tek bir test yöntemine sağ tıklayın ve bir JUNit testi olarak yürütün.

Umarım yardımcı olur.


1

Yalnızca bir test yöntemi çalıştırmak için.
(Paket gezgini veya proje gezgini) içinde sınıfı açın. Size tüm yöntemleri göstermelidir. Çalıştırmak istediğiniz bir yönteme sağ tıklayın, ardından bağlam menüsünden Farklı Çalıştır -> JUnit öğesini seçin.
görüntü açıklamasını buraya girin


0

Benim için, önceki sürümlerde çalışmasına rağmen Eclipse 3.4.2'de de çalışmıyor (paket gezgininden tek yöntemi ve junit görünümünden tek Junit testini çalıştırmayı denedim)


Paket Gezgini'nden tek bir yöntem / test çalıştırmak Eclipse 3.4.2'de benim için gayet iyi çalışıyor.
Volker Stolz

0

3.4.2 ile ilgili noktaya artık önceki sürümlerde olduğu gibi çalışmadığına katılıyorum. JUnit görünümünden bir grup testte tek bir teste sağ tıklayıp sadece o testi çalıştırmadan önce. En son sürümde, her zaman hepsini çalıştırmakta ısrar ediyor. Verilen görünüm, önce tıkladığınız testi çalıştırır ve geri kalanını "Köklenmemiş Testler" adlı bir toplamaya aktarır. Biri bunu anlarsa, bunu nasıl aşacağımı bilmek isterim.


0

Buradaki yorumlardan bazılarını okurken, üzerinde çalıştığınız koda odaklanmadan, değiştirirken değiştirdiğiniz kod için testler yapmak ilginizi çekebilir. Bunu yapmak için bir tutulma eklentisi var. İnfinitest bakın .

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.