Выделение сценариев в капусте - PullRequest
0 голосов
/ 09 мая 2018

Я автоматизирую приемочные испытания, определенные в спецификации, написанной в Gherkin, с использованием Elixir. Одним из способов сделать это является дополнение ExUnit под названием Капуста .

Теперь ExUnit, по-видимому, предоставляет хук setup, который выполняется перед любым отдельным тестом, и хук setup_all, который выполняется перед всем пакетом.

Теперь, когда я пытаюсь изолировать свои сценарии Gherkin, сбрасывая постоянство в хуке setup, кажется, что постоянство очищается перед выполнением каждого определения шага. Но один сценарий в Gherkin почти всегда требует нескольких шагов, которые создают тестовую среду и выполняют тест в фиксированном порядке.

Другая опция, ловушка setup_all, с другой стороны, сбрасывает постоянство один раз для каждого файла объектов. Но файл объектов в Gherkin почти всегда содержит несколько сценариев, которые в идеале должны быть полностью изолированы друг от друга.

Таким образом, вышеупомянутые хуки, кажется, позволяют мне изолировать отдельные шаги (которые я считаю бессмысленными) и целые файлы объектов (что далеко от оптимального).

Есть ли способ изолировать каждый сценарий?

1 Ответ

0 голосов
/ 27 февраля 2019

Прежде всего, есть альтернативы, например: белый хлеб .

Если для всех ваших функций требуется какой-то аналогичный начальный шаг, возможно, фоновые шаги - это то, что нужно изучить. К сожалению, эти изменения были смешаны с гораздо большим переписыванием библиотеки, в которую вошли более новые. Существует еще один PR , который также смешан с другими функциями и в настоящее время ожидает обновления сопутствующей библиотеки . Так что в настоящее время это не работает.

Не проверялось, как ведет себя библиотека с перехватчиками установки, но setup_all должен работать нормально.

Существует такая вещь, как теги. Который, я думаю, еще не был опубликован с новым выпуском, но находится в стадии разработки. Они работают с тегом обратного вызова. Вы можете посмотреть на пример в тестах .

Там сейчас немного путаницы. У меня не так много времени для этой библиотеки, как хотелось бы.

Надеюсь, это поможет вам немного:)

...