it-swarm.com.de

TestSuite-Setup in jUnit 4

Ich habe es geschafft, herauszufinden, wie man eine TestSuite in jUnit 4 erstellt, aber ich vermisse wirklich die v3-Möglichkeit, eine Suite in ein TestSetup zu packen.

Irgendwelche Ideen, wie ein @ BeforeClass/@ AfterClass-Setup für eine Reihe von Testfällen in jUnit 4 ausgeführt werden kann?

Das heißt.

@RunWith(Suite.class)
@Suite.SuiteClasses({Test1.class, Test2.class})
public class MyTestSuite {
    @BeforeClass public static void setUpClass() {
        // Common initialization done once for Test1 + Test2
    }
    @AfterClass public static void tearDownClass() {
        // Common cleanup for all tests
    }
}

Leider funktioniert das obige Codefragment nicht. @BeforeClass funktioniert nur pro Testklasse.

34
Rasmus

Hier ist, was ich habe und es läuft gut.

import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Suite.class)
@SuiteClasses({ TestSuite1.class, TestSuite2.class })
public class CompleteTestSuite {

    @BeforeClass 
    public static void setUpClass() {      
        System.out.println("Master setup");

    }

    @AfterClass public static void tearDownClass() { 
        System.out.println("Master tearDown");
    }

}

Hier ist meine Testsuite 1 (machen Sie dasselbe für Testsuite 2).

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(value = Suite.class)
@SuiteClasses(value = { TestCase1.class })
public class TestSuite1 {}

Und hier ist meine Testklasse. Erstellen Sie sowohl testcase1 als auch testcase2.

import static org.junit.Assert.assertEquals;

import org.junit.BeforeClass;
import org.junit.Test;

public class TestCase1 {

    @BeforeClass 
    public static void setUpClass() {      
        System.out.println("TestCase1 setup");
    }

    @Test
    public void test1() {
        assertEquals(2 , 2);
    }
}    

sie sollten 5 Klassen haben completesuite suite1 suite2 test1 test2

und stellen Sie sicher, dass Junit in Ihrem Erstellungspfad enthalten ist. Das sollte laufen!

Hier ist die Ausgabe

Master setup
TestCase1 setup
Master tearDown
51
user793623