2013-07-15 8 views
7

Ich habe Probleme bei der Ausführung eines Groovy JUnit Testfalls in Eclipse (siehe unten für Testcode und Umgebungsdetails).Parametrisierte Groovy JUnit Testfälle in Eclipse

Symptome

  • Rechtsklick auf die Klasse in Paket-Explorer und ausführendes tun -> JUnit Test Case bringt nur einen Dialog "Keine JUnit-Tests gefunden" behauptet.
  • Klicken Sie mit der rechten Maustaste auf das Projekt und machen Sie Ausführen als -> JUnit Test Case läuft alle Testfälle außer die parametrisierte Groovy ein.

Dinge, die ich habe versucht

  1. Gewährleistung eines "normalen" Groovy JUnit Testfall ausgeführt wird. Das funktioniert.
  2. Sicherstellen, dass ein parametrisierter Java-Testfall ausgeführt wird. Das funktioniert.
  3. Manuelles Erstellen einer JUnit-Laufkonfiguration für diesen Testfall. Das funktioniert.

So

So habe ich eine unbequeme Abhilfe (3). Dies ist jedoch nicht skalierbar, da dieser Testfall bei der Ausführung aller Testfälle im Projekt immer noch nicht berücksichtigt wird.

Irgendwelche Ideen, wie ich Eclipse/Groovy Plugin/JUnit bekommen kann, um meinen Testfall automatisch zu erkennen?


Testfall Code

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

Umwelt

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

+0

Hmmm ... Ich laufe in Kepler mit Groovy-Eclipse 2.8.0 und dem Compiler 2.1.5. Das funktioniert für mich. Haben Sie Fehler in Ihrem Fehlerprotokoll? Funktioniert Content Assist/Navigation innerhalb Ihrer Klasse? –

+0

@AndrewEisenberg: Content-Assist scheint in Ordnung zu sein, und keine Fehler gemeldet (wie ich sage, das läuft mit einer expliziten Laufkonfiguration gut). Ich bin noch Kepler zu erkunden (die IDE stürzt sofort auf meinem OSX). Meine allgemeine Erfahrung mit dem Groovy-Eclipse-Plugin (bis jetzt) ​​ist jedoch, dass es extrem temperamentvoll und buggy ist, also habe ich vielleicht nur Pech! –

Antwort

1

dieser Code funktioniert auf meinem juno Eclipse, JUnit 4.10 und groovy 2.0.6. Ich habe mit deinem Code begonnen, musste aber mit den Importen herumalbern, da einige der Anmerkungen rot waren. Ich musste auch die .class zu parametrisieren hinzufügen.

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

Leider funktioniert das auch nicht für mich, obwohl ich nicht versucht habe, zu Groovy-Eclipse 2.0.6 zurück zu rollen (ich werde das morgen versuchen ...) Also wenn Sie 'Parameterized.class' zurück zu' Parametrized ', es funktioniert nicht mehr für dich? –

+0

oop, wenn ich die .class entferne, funktioniert es immer noch. Entschuldigung für die Verwirrung. –