gpt4 book ai didi

ruby - Hook 后的 cucumber "puts"不输出任何内容

转载 作者:数据小太阳 更新时间:2023-10-29 06:34:19 25 4
gpt4 key购买 nike

在 Cucumber 中,在我的 env.rb 文件中,我设置了一个 before & after Hook (好吧,其中一些,一些链接到特定标签)但是发现 after Hook 不当我在其中放入 puts 时,不会输出任何内容。

例如,这个有效:

Before do
puts "before the scenario"
end

但这不是:

After do
puts "after the scenario"
end

似乎 after 钩子(Hook)确实运行了(因为在 after 钩子(Hook)中有一行我遇到了问题 & 在尝试调试它时,我发现了这个问题)但它们只是没有输出任何东西。

我所有的搜索都没有结果,找不到其他有类似问题的人。谁能告诉我是否做错了什么?

最佳答案

Cucumber 覆盖了 RbWorld 类中的 puts 消息,因此使用 puts 编写的任何内容都可以正确地广播到所有格式化程序。在 pretty 格式化程序的情况下,这些进入 delayed_messages 集合,直到它调用 print_messages,它似乎在每个步骤名称之后执行已打印,大概是为了使消息看起来嵌套在生成它们的步骤下。

出于某种原因,漂亮的格式化程序中没有对 print_messages 的最终调用,我不确定这是遗漏还是故意的,因为在输出。

有趣的是,如果您添加第二个场景,当第二个场景运行时,您会看到“场景之后”打印为第一条消息,这就是 delayed_messages 集合在起作用。

总而言之,您没有做错任何事,这只是 Cucumber 劫持了 puts 方法。如果您对这些消息的格式设置不太满意,那么您可以将 puts 替换为 STDOUT.puts 以绕过 Cucumber 的格式设置。

关于ruby - Hook 后的 cucumber "puts"不输出任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10526894/

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