gpt4 book ai didi

ruby - 如何在每个场景之前输出Cucumber后台步骤?

转载 作者:数据小太阳 更新时间:2023-10-29 08:12:38 24 4
gpt4 key购买 nike

通常,Cucumber 将输出后台步骤,使其看起来与您在功能文件中定义的步骤相同(位于顶部)。

$ bundle exec cucumber --color --format pretty

Feature: Something

Background:
Given step 1
And step 2

Scenario: a scenario
When I do step 3
Then it works

Scenario: another scenario
When I do a different step 3
Then it works

如果您始终可以在场景开始时显示步骤,那么查看后台步骤何时成功执行会容易得多。如何启用此行为?

Feature: Something

Scenario: a scenario
Given step 1
And step 2
When I do step 3
Then it works

Scenario: another scenario
Given step 1
And step 2
When I do a different step 3
Then it works

最佳答案

您必须创建自定义格式化程序。

假设您想要漂亮格式化程序之类的东西,您可以创建继承自漂亮格式化程序的类并替换所需的方法。基本上,您需要更改以下逻辑:

  • 背景不显示
  • 场景显示他们的背景步骤

这个格式化程序似乎可以工作:

require 'cucumber/formatter/pretty'

module Cucumber
module Formatter
class MyFormatter < Pretty

def background_name(keyword, name, file_colon_line, source_indent)
# Do nothing
end

def before_step_result(keyword, step_match, multiline_arg, status, exception, source_indent, background, file_colon_line)
@hide_this_step = false
if exception
if @exceptions.include?(exception)
return
end
@exceptions << exception
end
if @in_background
@hide_this_step = true
return
end
@status = status
end

end # MyFormatter
end # Formatter
end # Cucumber

假设这是在你的支持文件夹中,你可以在启动 cucumber 时使用它:

cucumber -f Cucumber::Formatter::MyFormatter

关于ruby - 如何在每个场景之前输出Cucumber后台步骤?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18924488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com