Mehrere Junit -Tests mit Fest
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.
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.