黄瓜/红宝石:可以将&PUT;PUT输出为--格式的html文件吗?

2022-07-14 00:00:00 string-formatting ruby html cucumber

我有一些Ruby测试,它们调用不同的模块和类,在这些模块和类中,它们详细说明了它们在执行过程中如何处理一些"PUT"命令。

如果您在控制台中运行这些测试,则您将在控制台中看到"PUT"命令的输出,但如果您使用选项运行测试:

ruby --format html --output file.html

那么所有信息都会丢失。有没有办法将简单的字符串消息记录到HTML报告中?


解决方案

您可以记住每个场景的前钩子中的World:

# features/support/env.rb
Before do |scenario|
  $world = self
end

然后在外部世界的支持类和模块中,您可以使用PUT:

$world.puts 'something'

您还可以获取/设置黄瓜实例变量为:

$world.instance_variable_get(:@user)
$world.instance_variable_set(:@user, user)

我还倾向于将这两个方法提取到帮助器以获得更好的可见性:

module Helpers
  def get_scenario_variable(symbol)
    $world.instance_variable_get(symbol)
  end

  def set_scenario_variable(symbol, value)
    $world.instance_variable_set(symbol, value)
  end
end

然后您可以在需要这些方法的地方包括此模块

相关文章