黄瓜色输出根据我打印文本的位置而变化

当我直接从黄瓜的Given / When / Then语句打印输出时,它以漂亮的蓝色文本打印,但是如果我调用任何其他function并在那里打印,它会以红色打印(而不是缩进)

样品特征:

Feature: Foo Scenario: Foo2 Given something Then something else 

示例step_def:

 Given /^something$/ do puts "Pretty blue" end class AnyClass def doSomething puts "Scary red" end end Then /^something else$/ do AnyClass.new.doSomething end 

在下面的示例输出中,“可怕的红色”是红色的,根本没有缩进,实际上在黄瓜步骤之前打印(“Then”子句)。 “漂亮的蓝色”是蓝色,适当缩进,并在黄瓜步骤后输出。

 Feature: Foo Scenario: Foo2 Given something Pretty blue Scary red Then something else 1 scenario (1 passed) 2 steps (2 passed) 0m0.001s 

我是Ruby和黄瓜的新手,所以我甚至不肯定这些是这个问题的合适标签。 有没有办法让其他类中调用的方法的输出与漂亮的格式相匹配?

编辑:一些更多的搜索表明,从步骤内的放置是以不同的方式处理(如果你的格式不同,它们是包括在内),而不是来自其他函数的放置(从其他格式器中排除)。 所以也许问题是,Ruby如何拦截步骤中的看跌期权? 我怀疑他们正在实施他们自己的推杆,这是该课程的一部分。

在为黄瓜步骤编写语法时,黄瓜已被覆盖(语法)变为彩色和缓冲。 颜色取决于步骤是否通过,并且缓冲发生是因为在所有内容都运行之前它不会对输出着色(因此它知道要打印哪种颜色)。

在语法步骤中传递自我并调用那些对象put会得到我所追求的行为。

红色是我的默认字体颜色的副作用。

即:

 After /Some Condition/ do some_object.test_something(self) end class SomeObject def test_something(obj) obj.puts "SomeText" end end