Frage

Ich habe mehrere Junit -Testmethoden geschrieben, um meine Java Swing -GUI zu testen (mit Verwendung Fest). Meine Klasse ist im folgenden Format:

public class Tests
{

    @BeforeClass
    public static void beforeClass() throws Exception { ... }

    @Before
    public void before() throws Exception { ... }

    @After
    public void after() throws Exception { ... }

    @AfterClass
    public static void afterClass() throws Exception { ... }

    @Test
    public void testA() { ... }

    @Test
    public void testB() { ... }

    @Test
    public void testC() { ... }

}

Wenn ich diese Klasse in Eclipse ausführe, wird nur der Testa -Test ausgeführt und nicht testb oder testc. Wenn ich Testa kommentiere, läuft testb - es scheint also jedes Mal den ersten Test auszuführen.

Junit in Eclipse zeigt 'Läufe: 2/3', nachdem er den ersten Test abgeschlossen hat, aber nicht weiter voranschreitet oder Fehler zeigt.

Gibt es etwas, das ich falsch mache? Ich verwende JUNIT 4.8.1 und Fest 1.2.

War es hilfreich?

Lösung

Ich vermute, dass Sie einen Nebeneffekt in haben testA Das blockiert den Code in testB vom Laufen. Es ist schwer zu sagen, was passiert, ohne die Details in testA und testB, aber ich kann Ihnen einige allgemeine Anleitung geben.

Sie haben einen guten Start, indem Sie sich kommentieren testA. Wenn Sie dies tun, tun Sie beides testB und testC Lauf?

Versuchen Sie, sich in den Bohr zu bohren testA und langsam die Details in dem, was darunter ist testA Bis Sie Tests durchführen testA und testB. Sobald Sie dies getan haben, wissen Sie zumindest wo das Problem ist.

Wenn Sie beispielsweise codieren, sieht es aus wie:

public void testA() {
    doX();
    doY();
    doZ();
    // Assert stuff
    ...
 }

kommentieren Sie alles danach doX() und sehen, was passiert. Wenn das funktioniert, dann doY() und sehen, was passiert. Wenn es nicht funktionierte, dann bohren doX() Und kommentieren Sie Ihre Tests wieder aus und führen Sie sie erneut aus.

Dies sollte Ihnen helfen, die Details darüber zu bestimmen, wo die Dinge schief gehen. Wenn Sie immer noch verblüfft sind, wenn Sie dies herausfinden, kommen Sie zurück und stellen Sie eine Frage zu diesen Details.

Viel Glück, deinen Fehler zu finden!

Andere Tipps

Scheint, dass Ihr Code -Snippet in Ordnung ist.

Sie können überprüfen, ob jede @test -Methode ist unabhängig Für andere sollte jede Testmethode nicht denselben Kontext teilen. Dafür sorgen @Before und @After korrektes Verhalten haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top