这将输出异常消息:
After {|scenario| p scenario.exception.message}
我想在那里添加一些文字,如下所示:
After {|scenario| scenario.exception.message << "extra data"}
但当然,这不起作用。
答案 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