有没有办法在Cucumber After hook中添加一些异常消息?

时间:2012-07-13 21:25:35

标签: cucumber

这将输出异常消息:

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

我想在那里添加一些文字,如下所示:

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

但当然,这不起作用。

2 个答案:

答案 0 :(得分:1)

如果你写:

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

并在控制台中运行Cucumber,你会看到它在执行After hook之前将它自己的异常消息打印到控制台。

因此,根据我的理解,您无法更改Cucumber的异常消息,因为它已经打印到输出中。

作为一种解决方法,您可以提出自己的例外:

After do |scenario|
  raise 'my message'
end

它将出现在Cucumber的输出中

答案 1 :(得分:1)

看起来这样做的方法是创建自定义Cucumber格式化程序。像这样:

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