2013-07-15 10 views
7

Mam problem z uruchomieniem testowego egzemplarza Jovit Groovy JUnit w środowisku Eclipse (zobacz poniżej kod testowy i szczegóły środowiska).Sparametryzowane przypadki testowe Groove JUnit w środowisku Eclipse

Objawy

  • prawym przyciskiem myszy na klasy w Package Explorer i robi Run As -> JUnit Przypadek Testowy tylko powoduje wyświetlenie okna dialogowego, twierdząc "nie znaleziono" testy JUnit.
  • Kliknięcie prawym przyciskiem myszy na projekcie i wykonanie Uruchom jako -> JUnit Test Case uruchamia wszystkie testowe skrzynki testowe z wyjątkiem sparametryzowanego Groovy.

Czego próbowałem

  1. Zapewnienie "normalne" Groovy JUnit test-przypadek uruchamia. To działa.
  2. Zapewnienie sparametryzowanej pracy testowej Java. To działa.
  3. Ręczne tworzenie konfiguracji uruchamiania JUnit dla tego przypadku testowego. To działa.

Więc

Więc mam niewygodnego obejście (3). Nie jest to jednak skalowalne, ponieważ ten przypadek testowy nadal nie zostanie uwzględniony po uruchomieniu wszystkich testów w projekcie.

Jakieś pomysły, w jaki sposób mogę uzyskać wtyczkę Eclipse/Groovy/JUnit, aby automatycznie rozpoznać przypadek testowy?


kod test-case

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

Środowisko

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

+0

Hmmm ... Jestem uruchomiony w Kepler z Groovy-Eclipse 2.8.0 i kompilatorem 2.1.5. To działa dla mnie. Czy masz jakieś błędy w dzienniku błędów? Czy pomoc/nawigacja treści działa wewnątrz twojej klasy? –

+0

@AndrewEisenberg: Obsługa zawartości wydaje się działać poprawnie i nie zgłoszono żadnych błędów (jak mówię, działa to dobrze przy jawnie uruchomionej konfiguracji). Mam jeszcze zbadać Keplera (IDE natychmiast zawiesza się na moim OSX-ie). Jednak moim ogólnym doświadczeniem wtyczki Groovy-Eclipse (jak dotąd) jest to, że jest ona ** wyjątkowo ** pełna temperamentu i powikłana, więc może po prostu mam pecha! –

Odpowiedz

1

ten kod działa na moim Juno Eclipse, JUnit 4.10 i porywające 2.0.6. Zacząłem od twojego kodu, ale musiałem wygłupiać z importem, ponieważ niektóre adnotacje były czerwone. Musiałem również dodać parametr .class do sparametryzowania.

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

Niestety, to też nie działa, chociaż nie próbowałem wrócić do Groovy-Eclipse 2.0.6 (spróbuję tego jutro ...) Więc jeśli zmienisz 'Parameterized.class' z powrotem na' Sparametryzowane ", to już nie działa dla ciebie? –

+0

oop, jeśli usunę .class, to nadal działa. przepraszam za zamieszanie. –