2013-07-15 15 views
7

için Parametreli Groovy JUnit sınama durumları Eclipse'de Parameterized Groovy JUnit sınaması yapmakla ilgili sorun yaşıyorum (test kodu ve ortam ayrıntıları için aşağıya bakın).Eclipse

Belirtileri

  • Paket Explorer sınıfın sağ tıklamak ve Çalıştır özelliğini yapıyor -> JUnit Test Case sadece "bulunamadı JUnit testleri" iddia eden bir iletişim kutusunu getirir.
  • proje üzerinde sağ tıklamak ve Çalıştır özelliğini yapıyor -> JUnit Test Case ishal tüm test kılıfı parametreli Groovy biri hariç .

şeyler ben "normal" Groovy JUnit test-case çalışır sağlanması

  1. denedim. Bu çalışır.
  2. Parametreli bir Java sınaması örneği çalıştırılıyor. Bu çalışır.
  3. Bu sınama durumu için bir JUnit çalıştırma yapılandırması el ile oluşturulur. Bu çalışır.

Yani

Yani uygunsuz bir geçici çözüm vardır (3). Ancak bu, ölçeklenebilir değildir, çünkü bu test vakası, projedeki tüm test senaryolarını çalıştırdığımda dahil edilmeyecektir.

Test durumumu otomatik olarak tanımak için Eclipse/Groovy plugin/JUnit'i nasıl edinebileceğim hakkında herhangi bir fikrin var mı?


Testi durum kodu

import org.junit.Test 
import org.junit.runner.RunWith 
import org.junit.runners.Parameterized 
import org.junit.runners.Parameterized.Parameters 

@RunWith(Parameterized) 
public class TestParams { 
    final int a 

    public TestParams(int a) { this.a = a } 

    @Parameters 
    public static Collection<Object[]> data() { 
     def cases = new Object[2][1] 
     cases[0][0] = 3 
     cases[1][0] = 4 
     Arrays.asList(cases) 
    } 

    @Test public void test() { println "a = $a" } 
} 

Çevre

  • Eclipse Juno Service Release 2 (OSX)
  • Groovy-Eclipse 2.8.0

+0

Hmmm ... Groovy-Eclipse 2.8.0 ve 2.1.5 derleyicisiyle birlikte Kepler'da çalışıyorum. Bu benim için çalışıyor. Hata günlüğünüzde herhangi bir hata var mı? İçerik yardım/navigasyon sınıfınızın içinde çalışır mı? –

+0

@AndrewEisenberg: İçerik-yardımcısı işe yaramıyor gibi görünüyor ve hiçbir hata bildirilmiyor (dediğim gibi, bu, açık bir çalışma yapılandırmasıyla düzgün çalışıyor). Kepler'i (IDE'm hemen OSX'imde çöker) keşfetmeye henüz başlamam. Ancak, Groovy-Eclipse eklentisi (şimdiye kadar) genel deneyimim, ** son derece ** mizaç ve buggy, bu yüzden belki de sadece şanssızım! –

cevap

1

bu kod benim juno Tutulma, JUnit 4.10 ve harika 2.0.6 üzerinde çalışır JUnit 4.10.0. Kodunuzla başladım, ancak bazı ek açıklamaların kırmızı olduğu için ithalatla dalga geçmeliydim. Ayrıca .class'ı parametreleştirmek zorunda kaldım.

import org.junit.Test 
import org.junit.runner.RunWith 
import org.junit.runners.Parameterized 
import org.junit.runners.Parameterized.Parameters 
@RunWith(Parameterized.class) public class TestParams { 
    final int a 

    public TestParams(int a) { this.a = a } 

    @Parameters 
    public static Collection<Object[]> data() { 
     def cases = new Object[2][1] 
     cases[0][0] = 3 
     cases[1][0] = 4 
     Arrays.asList(cases) 
    } 

    @Test public void test() { println "a = $a" } 
} 
+0

Ne yazık ki bu benim için de çalışmıyor, ancak Groovy-Eclipse 2.0.6'ya geri dönmeyi denemedim (eğer bunu yarın deneyeceğim ...) Yani 'Parameterized.class' parametresini tekrar 'artık senin için çalışmıyor mu? –

+0

oop, eğer .class'ı kaldırırsam hala çalışır. karışıklık için üzgünüm. –