Как подсчитать метки по запущенным сценариям в Ruby Cucumber?

У меня есть файл функций с несколькими сценариями и различными тегами для каждого из сценариев. Я запускаю тест Cucumber с помощью команды rake с определенным тегом и создаю собственный HTML-отчет.

Настраиваемый отчет в формате HTML создается в хуке After. Я сталкиваюсь с проблемой, касающейся того, как получить количество сценариев, когда я работаю с командой rake. Я использую

scenario.feature.feature_elements.size

чтобы получить общее количество сценариев, но это дает общее количество сценариев файла объектов, и я пытаюсь получить только количество сценариев, которые помечены определенным тегом.

1 ответ

Решение

В хуке "До" ведите подсчет тегов каждого сценария в глобальном порядке при их запуске:

Before do |scenario|
   $tag_counts ||= {}
   scenario.tags.map(&:name).each do |tag|
     $tag_counts[tag] ||= 0
     $tag_counts[tag] += 1
   end
end

После запуска всех сценариев вы сможете использовать содержимое global в своем настраиваемом репортере.

Другие вопросы по тегам