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

时间:2013-02-22 23:11:48

标签: ruby cucumber

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

示例功能:

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

在下面的示例输出中,“Scary red”为红色,根本没有缩进,实际上是在黄瓜步骤之前打印的(“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&amp;的新手黄瓜所以我甚至不肯定那些是这个问题的适当标签。有没有办法让其他类中调用的方法的输出与漂亮的格式匹配?

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

1 个答案:

答案 0 :(得分:0)

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

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

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

即:

After /Some Condition/ do
   some_object.test_something(self)
end

class SomeObject
   def test_something(obj)
      obj.puts "SomeText"
   end
end