黄瓜不同的地方我打印彩色文本输出的变化(Cucumber colored output change

2019-10-17 17:40发布

当我打印直接从给定的时/ /然后黄瓜的声明,它在一个不错的蓝色文本打印,但是如果我打电话到任何其他功能,内有打印输出,它以红色(不缩进)打印

样本特征:

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

在下面的示例输出,“可怕的红色”是红色的,而不是缩进可言,和黄瓜步骤(“则”子句)之前实际打印。 “漂亮蓝色”是蓝色的,适当地缩进和黄瓜步骤后输出。

Feature: Foo

  Scenario: Foo2
    Given something
      Pretty blue
Scary red
    Then something else

1 scenario (1 passed)
2 steps (2 passed)
0m0.001s

我是新来的Ruby和黄瓜,所以我不积极,甚至是那些对这个问题选择合适的标签。 有没有一种方式,利用所谓的其他类内将匹配漂亮的格式化方法输出?

编辑:一些更多的搜索表明,从内部步骤的处理方式不同把(如,如果你不同的格式化,他们被包括在内)比其他功能(其中获得排除其他格式化)看跌期权。 因此,或许问题是,如何红宝石拦截从步骤卖出期权? 我怀疑他们是在实现自己的看跌期权是与步骤的阶级的一部分,那么。

Answer 1:

当写黄瓜步骤语法,黄瓜已经覆盖(文法)把被着色和缓冲。 颜色取决于步骤是否经过,并且缓冲是因为,直到一切都运行(所以它知道要打印的色彩),它会不色的输出。

从语法的步骤,并调用该对象会给内通过自我得到我之后的行为。

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

即:

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

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


文章来源: Cucumber colored output changes depending on where I print text
标签: ruby cucumber