Настройка TestSuite в jUnit 4 - PullRequest
34 голосов
/ 05 июля 2011

Мне удалось выяснить, как создать TestSuite в jUnit 4, но я действительно упускаю возможность v3 обертывания пакета в TestSetup.

Есть идеи, как выполнить установку @ BeforeClass / @ AfterClass для набора тестовых примеров в jUnit 4?

* 1005 Т.е. *

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

К сожалению, приведенный выше фрагмент кода не работает. @BeforeClass работает только для каждого класса тестирования.

1 Ответ

51 голосов
/ 06 июля 2011

Вот то, что у меня есть, и все работает отлично.

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

}

Вот мой набор тестов 1 (выполните то же самое для набора тестов 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 {}

А вот и мой тестовый класс. Создайте и testcase1, и 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);
    }
}    

у вас должно быть 5 классов completesuite suite1 suite2 test1 test2

и убедитесь, что у вас есть Junit на вашем пути сборки. Это должно бежать!

Вот вывод

Master setup
TestCase1 setup
Master tearDown
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...