1

这将输出异常消息:

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

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

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

但当然,这是行不通的。

4

2 回答 2

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
于 2012-07-14T12:35:08.513 回答
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 回答