1

これにより、例外メッセージが出力されます。

After {|scenario| p scenario.exception.message}

そこに次のようなテキストを追加したいと思います。

After {|scenario| scenario.exception.message << "extra data"}

しかしもちろん、それは機能しません。

4

2 に答える 2

1

あなたが書く場合:

After do |scenario|
  p scenario.exception.message
end

コンソールでCucumberを実行すると、Afterフックを実行する前に独自の例外メッセージがコンソールに出力されることがわかります。

したがって、私の理解では、Cucumberの例外メッセージはすでに出力に出力されているため、変更することはできません。

回避策として、独自の例外を発生させることができます。

After do |scenario|
  raise 'my message'
end

Cucumberの出力に表示されます

于 2012-07-13T23:43:35.230 に答える
1

それを行う方法は、カスタムキュウリフォーマッターを作成することのように見えます。このようなもの:

require 'cucumber/formatter/junit'

module Cucumber::Formatter
  class Custom < Junit
    def format_exception(exception)
      (["extra data"] + ["#{exception.message} (#{exception.class})"] + exception.backtrace).join("\n")
    end
  end
end

次に、カスタムフォーマッタを使用して機能を実行します。

$ cucumber --format Cucumber::Formatter::Custom --out reports
于 2012-07-14T12:35:08.513 に答える