Могу ли я пропустить глобальный хук в Cucumber, если в сценарии есть тег? - PullRequest
1 голос
/ 08 ноября 2019

В моем наборе у меня есть хук После , который удаляет файлы из временного каталога, когда он завершает сценарий. Однако в некоторых случаях бывают случаи, когда я не хочу удалять файлы из временного каталога, и я стремлюсь к этому, предоставив сценарий с именем @no_cleanup для сценария.

Прямо сейчас мойcurrent После ловушка выглядит следующим образом:

After do
  FileUtils.rm_f(Dir.glob(File.join @local_dir, '*'))
end

Что я хочу сделать, это что-то вроде «пропустить этот крючок, если в сценарии есть тег @no_cleanup».

Возможно ли это?

1 Ответ

2 голосов
/ 09 ноября 2019

Как указано в документации по огурцам (не забудьте выбрать рубин вверху страницы):

Крюки могут быть условно выбраны для выполнения на основе теговсценарий. Чтобы запустить определенный хук только для определенных сценариев, вы можете связать Before, After, Around или AfterStep Hook с выражением тега .

Before('@browser and not @headless') do
end

См. Дополнительную документацию по тегам .

Итак, в вашем случае, я полагаю, это должно быть:

After('not @no_cleanup') do
  FileUtils.rm_f(Dir.glob(File.join @local_dir, '*'))
end

Надеюсь, это поможет.

...