Теги – замечательный инструмент для упорядочивая сценариев Cucumber’а (или примеров Rspec’а). Вы можете давать теги всему. Вы можете метить долговыполняющиеся сценарии (примеры) тегом slow, и не запускать их в команде по-умолчанию. Вы можете, в случае с кукумбером, метить сценарии (или, кстати, целиком фичу) тегом @javascript, и они будут выполнятся с использованием текущего javascript-драйвера (кстати, эта возможность доступна из коробки).
Но самое часто-используемое – это специальная метка для того, над чем вы работаете именно сейчас. В кукумбер она доступна по-умолчанию и зовётся @wip. Там даже преднастроен специальный профиль, который переключает форматирование на более удобное и запускает только @wip-сценарии:

cucumber -p wip

Впрочем, если вам хочется только фильтровать теги, то можно воспользоваться ключём --tags: cucumber --tags wip. Пометь сценарий тегом wip можно следующим образом

@wip
Scenario: my scenario
  Given ...

Подробнее о тегах в кукумбере можно прочесть в официальной вики.

Отличным дополнение к тегам в кукумбере является возможность создавать перехватчики (hooks). Можно перехватить что угодно, но нас интересует возможность перехватить выполнение сценария с определённым тегом.
Скажем, мы хотим, чтобы у сценариев с тегом @lvh-js параметр Capybara.app_host менялся на http://lvh.me:9887 (lvh.me, а также все его поддомены, ссылаются 127.0.0.1), и включался драйвер selenium. Сделать это очень просто. Для этого создаём файл features/support/lvh-js-tag.rb, и пишем туда следующее:

Before('@lvh-js') do
  Capybara.app_host = "http://lvh.me:9887"
  Capybara.current_driver = :selenium
end

Готово. Подробнее о перехватчиках также можно прочесть в официальной вики.

Что касается rspec’а, то там теги задаются чуть иначе. Теги могут быть представлены как строка, например, wip и как пара ключ-значение, например, speed:slow. Для того, что б пометь it\describe\context.. обычным тегом, надо добавить в в конце вызова :wip => true, если же хочется пометить парой ключ-значение, то :speed => :slow. Например:

it "my current example", :wip => true do
  ...
end

Теперь можно запустить на выполнение примеры только с тегом wip: rspec --tag wip.
Челимский, что кстати очень разумно, переносит документации в фичи кукумбера, поэтому подробнее о тегах в rspec можно прочесть в официальной фиче.

2 комментария [написать ещё один]

[IMG]

How do you strengthen your Achilles tendon?, 23 июля 2017 года

I am regular reader, how are you everybody? This post posted at this
web page is really pleasant.

[IMG]

push up bralette, 1 июня 2017 года

It’s the best time to make a few plans for the future and
it is time to be happy. I have read this post and if I
could I desire to recommend you few fascinating things or advice.
Perhaps you could write next articles regarding this article.
I desire to learn even more issues approximately it!