捕获和记录黄瓜测试结果

Capturing and logging cucumber test results

我正在将日志记录添加到测试套件中。它使用 Ruby、Cucumber 和 Rspec 到 运行。我已经设置了一个 env.rb 来记录每个测试,并且可以捕获场景和步骤并将它们放入记录器中,但我不知道如何获取实际结果。

每个测试运行都会放一些类似

的东西
    1 scenario (1 passed)
    27 steps (27 passed)
    0m0.176s

进入控制台。

我知道我可以使用 Before do |scenario| 获取功能名称、场景名称、标签和步骤下面,但我无法找到访问结果的方法。

$logger.level = :info
$logger.add_appenders \
Logging.appenders.stdout,
Logging.appenders.file("logging/#{Time.now.strftime("%m-%d-%Y--%H:%M")}.log")
user = `id -un` #Mac specific, sorry windows users
user.delete!("\n")
$logger.debug "Test run by #{user} on #{Time.now.strftime("%m/%d/%Y")}"

Before do |scenario|
  @feature_name = scenario.feature.name
  @scenario_name = scenario.name
  @scenario_tags = scenario.source_tag_names
  $logger.info "FEATURE: #{@feature_name}"
  $logger.info "SCENARIO: #{@scenario_name}"
  $step_index = 0
  $stop_count = scenario.test_steps.count
  @scenario = scenario
end

AfterStep do |step|
  if $step_index < $stop_count
    $logger.info "#{@scenario.test_steps[$step_index].text}\n"
  end
  $step_index += 2
end

它需要输出到 .log,这就是我到目前为止一直避免使用 html 报告生成器的原因。

发现这正是我需要的

AfterConfiguration do |config|
    config.on_event :test_case_finished do |event|
        p event.result
    end
end