Как выполнить параметризованные прогоны метода тестирования последовательно в распараллеленном тестовом классе Junit 5?

#java #junit #junit5 #junit-jupiter

#java #junit #junit5 #junit-jupiter

Вопрос:

Учитывая следующий тестовый класс Junit5, как мне запускать upperCaseTest и lowerCaseTest параллельно, пока параметризованные прогоны в каждом тестовом методе выполняются последовательно. Другими словами, «A», «B» и «C» должны выполняться последовательно, «x», «y», «z» должны выполняться последовательно, но «A» и «x» должны иметь возможность выполняться параллельно.

 @Execution(ExecutionMode.CONCURRENT)
class ParallelParameterizedTest {

    @ParameterizedTest
    @ValueSource(strings = {"A", "B", "C"})
    void upperCaseTest(String s) {
        assertEquals(s.toUpperCase(), s);
    }

    @ParameterizedTest()
    @ValueSource(strings = {"x", "y", "z"})
    void lowerCaseTest(String s) {
        assertEquals(s.toLowerCase(), s);
    }
}
 

Мой файл junit-platform.properties выглядит следующим образом:

 junit.jupiter.execution.parallel.enabled = true
junit.jupiter.execution.parallel.config.strategy = fixed
junit.jupiter.execution.parallel.config.fixed.parallelism = 2
 

Фактическое поведение заключается в том, что все тесты выполняются параллельно.

На странице Gitter Junit5 есть постоянный поток (https://gitter.im/junit-team/junit5?at=6005fe8fac653a0802c8c258 )

Комментарии:

1. Каково ваше фактическое поведение? Я думаю, что эта конфигурация должна работать нормально.

2. @amseager обновил вопрос. Спасибо!