AFAIK нет встроенного механизма для этого. Следующее сработало бы, но это довольно хаки sh:
@TestInstance(Lifecycle.PER_CLASS)
class Test {
boolean skipRemaining = false;
@ParameterizedTest
@CsvFileSource(resources = "testData.csv", numLinesToSkip = 1)
void test(String parameter, String anotherParameter) {
Assumptions.assumeFalse(skipRemaining);
try {
// testing here
} catch (AssertionError e) {
skipRemaining = true;
throw e;
}
}
}
В отличие от ошибочного утверждения, которое помечает тест как неудачный, предположение приводит к его отмене. Кроме того, жизненный цикл переключается с метода на класс:
При использовании этого режима новый экземпляр теста будет создан один раз для каждого класса теста. Таким образом, если ваши методы тестирования основаны на состоянии, хранящемся в переменных экземпляра, вам может потребоваться сбросить это состояние в @BeforeEach
или @AfterEach
методах.
В зависимости от того, как часто вам нужна эта функция, я скорее go с пользовательским расширением .