# Junit Testfall mehrfach ausführen?



## Miriam84 (16. Jan 2010)

Hallo,

ist es möglich einen Testfall in Junit mehrfach auszuführen? 

Ich weiß, ich könnte ihn kopieren und mehrmals untereinander schreiben, oder auch innerhalb des Testfalls eine Schleife und ihn so mehrfach ausführen. Aber ich hätte gerne eine genauere Aussage bei welchem Durchlauf der Test fehlschlägt und ob sich die Zeit der Testdurchführung erhöht. Da in meinem log sehr viele Ausgaben stehen, ist es zu umständlich die ganzen Zeiten herauszufiltern um einen Vergleich zu haben. Deswegen habe ich gehofft, das es eine Annotation gibt, mit der ich das gewünschte Verhalten hinbekomme.

Kann aber keine höhere Version als Junit 4.4 verwenden, weil es um den Test von Eclipse Plugins geht und eclipse 3.4. nur junit 4.4. unterstützt.


----------



## kama (16. Jan 2010)

Hallo,

nach Deinen Schilderungen scheint mir Dein Test falsch auf gesetzt zu sein....es scheint ja so als ob bei mehrfacher Durchführung etwas schief geht....

Wenn das so ist, dann musst rauskriegen welche Anfangsbedingungen etc. für Deinen Test notwendig sind....

Den Test kannst Du ja in Eclipse einfach per Tasten-Druck mehrfach laufen lassen...

MfG
Karl Heinz Marbaise


----------



## Miriam84 (16. Jan 2010)

Nein, nicht in meinem Test, sondern höchstwahrscheinlich in meinem Programm ist ein fehler, welcher mit einem Speicherleck oder ähnlichem zusammenhängt. Da ich den Test ca 100 mal oder so ausführen möchte und dieser auch immer ein paar Minuten dauert, möchte ich halt nicht die ganze zeit danebensitzen um zu warten bis es soweit ist, dass der fehler kommt.


----------



## kama (16. Jan 2010)

Hallo,

ja klar ....dann kannst Du ja zuerst einmal die Test Method per Schleife aufrufen...

den Code wie im Folgenden...

```
@Test
    public void derToetlicheTest() {
    ....
    }
}
```

in das hier ändern:

```
@Test
   public void derRepeaterTest() {
      for (int i=0; i<100; i++) {
      System.out.println("Test Nr." + i + " Anfang");
      derToetlicheTest();
      System.out.println("Test Nr." + i + " Ende");
      }

    private void derToetlicheTest() {
    ....
    }
```



Miriam84 hat gesagt.:


> Nein, nicht in meinem Test, sondern höchstwahrscheinlich in meinem Programm ist ein fehler, welcher mit einem Speicherleck oder ähnlichem zusammenhängt. Da ich den Test ca 100 mal oder so ausführen möchte und dieser auch immer ein paar Minuten dauert, möchte ich halt nicht die ganze zeit danebensitzen um zu warten bis es soweit ist, dass der fehler kommt.


Kleines Misverständnis.....Ich meinte, dass der Ansatz zu Testen anscheinend noch nicht richtig ist....die Frage ist was Dein Test macht....für mich sind das immer Indikatoren, dass noch etwas anderes im Argen liegt...

Meiner Erfahrung nach, bedeutet schwierigkeiten beim Testen bzw. Erstellen von Testfällen (die man eigentlich vorher macht ;-))....dass in der Applikation noch Design Schwächen oder Schnittstellen nicht richtig geschnitten sind...

Und im Speziellen Fall hier nehme ich an, dass nicht alle Komponenten getestet werden, da muss ja irgendwo der Hund begraben sein, Speicher Probleme treten ja in Java relativ Selten auf....oder Du testest zu Große Bereiche mit dem Unit Test....und Du must tiefer graben...Du Testest anscheinend auf zu Hoher Ebene....das ist dann wohl weniger ein Unit Test als mehr eine Integrationstest...(aber das ist eine andere Geschichte..)...

MfG
Karl Heinz Marbaise


----------

