Class: Maze::Plugins::CucumberReportPlugin

Inherits:
Object
  • Object
show all
Defined in:
lib/maze/plugins/cucumber_report_plugin.rb

Instance Method Summary collapse

Constructor Details

#initializeCucumberReportPlugin

Returns a new instance of CucumberReportPlugin.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/maze/plugins/cucumber_report_plugin.rb', line 18

def initialize
  configured_data = {
    driver_class: Maze.driver.class,
    device_farm: Maze.config.farm,
    device: Maze.config.device,
    os: Maze.config.os,
    os_version: Maze.config.os_version
  }
  buildkite_data = {
    pipeline: ENV['BUILDKITE_PIPELINE_NAME'],
    repo: ENV['BUILDKITE_REPO'],
    build_url: ENV['BUILDKITE_BUILD_URL'],
    branch: ENV['BUILDKITE_BRANCH'],
    message: ENV['BUILDKITE_MESSAGE'],
    step: ENV['BUILDKITE_LABEL'],
    commit: ENV['BUILDKITE_COMMIT']
  }
  report['configuration'] = configured_data
  report['build'] = buildkite_data
end

Instance Method Details

#install_plugin(cuc_config) ⇒ Object



39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/maze/plugins/cucumber_report_plugin.rb', line 39

def install_plugin(cuc_config)
  unless Maze.config.tms_uri && Maze.config.tms_token && ENV['BUILDKITE']
    $logger.info 'No test report will be delivered for this run'
    return
  end
  # Add installation hook
  cuc_config.formats << ['json', {}, json_report_stream]

  # Add exit hook
  at_exit do
    finish_report
  end
end

#json_report_streamObject



53
54
55
# File 'lib/maze/plugins/cucumber_report_plugin.rb', line 53

def json_report_stream
  @json_report_stream ||= StringIO.new
end

#reportObject



57
58
59
# File 'lib/maze/plugins/cucumber_report_plugin.rb', line 57

def report
  @report ||= {}
end