JUnit 5: укажите порядок выполнения для вложенных тестов - PullRequest
1 голос
/ 02 апреля 2019

Возможно ли выполнить несколько вложенных тестов между другими тестами с фиксированным порядком выполнения?

* 1003 Е.Г. *

@TestInstance(Lifecycle.PER_CLASS)
@TestMethodOrder(OrderAnnotation.class)
class MyTest {

    private State state = State.ZERO;

    @Test
    @Order(1)
    public void step1() throws IOException {
        state = State.ONE;
    }

    @Order(2)  // sth like this, however this annotation isn't allowed here
    @Nested
    class WhileInStateOne {

        @Test
        public void step2a {
            Assumptions.assumeTrue(state == State.ONE);

            // test something
        }

        @Test
        public void step2b {
            Assumptions.assumeTrue(state == State.ONE);

            // test something else
        }

    }

    @Test
    @Order(3)
    public void step3() throws IOException {
        state = State.THREE;
    }

}

Я знаю, что модульные тесты, как правило, не должны содержать состояний, однако в этом случае я могу сэкономить много времени выполнения, если смогу повторно использовать состояние в фиксированном порядке.

1 Ответ

2 голосов
/ 02 апреля 2019

Нет. Тесты во вложенных классах всегда выполняются после тестов во включающем классе. Это нельзя изменить.

Порядок методов испытаний применяется только к методам в пределах одного класса испытаний.

...