Метод @parameters выполняется перед методом @beforeclass

Я использую «параметризованный» особенность junit 4 и я заметил, что метод @parameters выполняется перед методом @beforeclass. Это создает проблему для меня, потому что параметры, которые я передаю в тестовые случаи через @parameters, зависят от кода, инициализированного в методе @beforeclass. Например

@RunWith(Parameterized.class)
public class TestOtherClass {

    String argument;
    private static boolean initializeThis;

    public TestOtherClass(String parameter) throws Exception {
        argument=parameter;
    }

    @BeforeClass
    public static void doSetup() {
        System.out.println("Doing setup before class...");
        initializeThis=true; // true or false, based on some condition
    }

    @Test
    public void otherTest() {
        System.out.println("Other test: " + argument);
    }

    @Parameters
    public static Collection<Object[]> getData(){
        System.out.println("Inside parameter");
        String addThis;
        if(initializeThis)
            addThis="adding true";
        else
            addThis="adding false";

        Object[] para1 = new Object[]{"First parameter :: " + addThis};
        Object[] para2 = new Object[]{"Second parameter :: " + addThis};

        Collection<Object[]> classNames = new ArrayList<Object[]>();
        classNames.add(para1);
        classNames.add(para2);
        return classNames;
    }
}

Теперь я инициализирую переменную «initializeThis». true в методе @beforeclass, но (удивительно), когда я выполнил тестовый пример, он печатает

Other test: First parameter :: adding false
Other test: Second parameter :: adding false

Это чего-то не ожидал.
Мой вопрос Есть ли способ выполнить метод @beforeclass до @parameters, мы можем сделать это в junit 4?

Ответы на вопрос(4)

Ваш ответ на вопрос