如何计算 Ruby Cucumber 中 运行 场景的标签?

How to count tags on running scenarios in Ruby Cucumber?

我有一个包含多个场景和每个场景的不同标签的功能文件。我正在 运行 我的 Cucumber 测试,使用带有特定标签的 rake 命令并正在创建自定义 HTML 报告。

自定义 HTML 报告是在 After 挂钩中创建的。当我使用 运行 rake 命令时,我遇到了如何获取场景计数的问题。我使用

scenario.feature.feature_elements.size

获取场景总数,但这给出了功能文件的场景总数,我试图只获取带有特定标签的场景数。

在 Before 挂钩中,在您 运行 时对每个场景的标签进行全局计数:

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

所有场景都有运行后,你应该可以在自定义报告器中使用全局的内容了。