捕获并记录黄瓜测试结果

时间:2019-07-17 07:30:52

标签: ruby logging rspec cucumber

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

每次试运行都会显示类似的内容

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

进入控制台。

我知道我可以使用“先做|场景|”来获取功能名称,场景名称,标签和步骤。在下面,但无论如何我都找不到访问结果。

$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报表构建器的原因。

1 个答案:

答案 0 :(得分:0)

发现这正是我所需要的

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