キュウリのGiven/When / Thenステートメントから直接出力を印刷すると、きれいな青いテキストで印刷されますが、他の関数を呼び出してその中で印刷すると、赤で印刷されます(インデントされません)。
サンプル機能:
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とキュウリを初めて使用するので、これらがこの質問に適切なタグであるとは確信していません。他のクラス内で呼び出されたメソッドからの出力をきれいなフォーマットと一致させる方法はありますか?
編集:いくつかの検索では、ステップ内からのプットは、他の関数からのプット(他のフォーマッターから除外される)とは異なる方法で処理されることが示されています(別の方法でフォーマットすると、それらが含まれます)。おそらく問題は、Rubyがステップからのプットをどのようにインターセプトするかということです。そのとき、彼らはステップのクラスの一部である独自のプットを実装しているのではないかと思います。