Я пишу несколько тестов, используя cucumber jvm, которые требуют нескольких различных вариантов поведения для некоторых функций. , при этом в большинстве сценариев требуется общий демонтаж.
До сих пор мне удавалось успешно заставить огурец запустить обычный демонтаж (используя аннотацию «@After») для большинства моих сценариев. Кроме того, я указал тег для игнорирования небольшого подмножества сценариев, поэтому в этих случаях я могу использовать определенный разрыв. Вот сжатый пример, показывающий только аннотации:
@After("~@specificTearDown")
public void tearDown(){
// some tear down code
}
@After("@specificTearDown")
public void specialTearDown(){
// some code specific to a scenario
}
Я использую символ «~», чтобы указать помеченные сценарии/функции, которые следует игнорировать.
Это работает хорошо, и я получаю первый метод разрыва, вызываемый в большинстве сценариев, а второй работает только для помеченных сценариев.
Моя проблема в том, что теперь мне нужно указать второй конкретный метод разрыва для другого сценария, но огурец, похоже, не любит игнорировать более 1 тега.
Я пробовал следующее, но безуспешно...
@After("~@specificTearDown, ~@anotherSpecificTearDown")
public void tearDown(){
// some tear down code
}
@After("@specificTearDown")
public void specialTearDown(){
// some code specific to a scenario
}
@After("@anotherSpecificTearDown")
public void anotherSpecificTearDown(){
// some code specific to a scenario
}
Это приводит к тому, что огурец просто запускает первый метод удаления для всех сценариев, что приводит к конфликту моих тестов, поскольку другие методы удаления также выполняются для помеченных сценариев.
Любые идеи, как я мог бы это сделать, я думал о том, чтобы иметь только один тег, который я использую, чтобы указать первый разрыв и пометить им все функции, которые я не хочу разрушать с помощью этого кода, но это кажется неправильным иметь сделать это со мной.