Module: ParallelCucumber::Helper::Cucumber

Defined in:
lib/parallel_cucumber/helper/cucumber/cucumber.rb,
lib/parallel_cucumber/helper/cucumber/json_status_formatter.rb

Defined Under Namespace

Classes: JsonStatusFormatter

Class Method Summary collapse

Class Method Details

.batch_mapped_files(options, batch, env) ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/parallel_cucumber/helper/cucumber/cucumber.rb', line 18

def batch_mapped_files(options, batch, env)
  options = options.dup
  options = expand_profiles(options, env) unless config_file.nil?
  file_map = {}
  options.gsub!(/(?:\s|^)--dry-run\s+/, '')
  options.gsub!(%r{((?:\s|^)(?:--out|-o))\s+((?:\S+\/)?(\S+))}) { "#{$1} #{file_map[$2] = "#{batch}/#{$3}"}" } # rubocop:disable Style/PerlBackrefs, Metrics/LineLength
  [options, file_map]
end

.parse_json_report(json_report) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/parallel_cucumber/helper/cucumber/cucumber.rb', line 27

def parse_json_report(json_report)
  report = JSON.parse(json_report, symbolize_names: true)
  report.each do |scenario, details|
    report[scenario][:status] = case details[:status]
                                when 'failed'
                                  Status::FAILED
                                when 'passed'
                                  Status::PASSED
                                when 'pending'
                                  Status::PENDING
                                when 'skipped'
                                  Status::SKIPPED
                                when 'undefined'
                                  Status::UNDEFINED
                                when 'unknown'
                                  Status::UNKNOWN
                                else
                                  Status::UNKNOWN
                                end
  end
  report
end

.selected_tests(options, args_string) ⇒ Object



12
13
14
15
16
# File 'lib/parallel_cucumber/helper/cucumber/cucumber.rb', line 12

def selected_tests(options, args_string)
  puts "selected_tests (#{options.inspect} #{args_string.inspect})"
  dry_run_report = dry_run_report(options, args_string)
  parse_json_report(dry_run_report).keys
end

.unknown_result(tests) ⇒ Object



50
51
52
53
54
55
# File 'lib/parallel_cucumber/helper/cucumber/cucumber.rb', line 50

def unknown_result(tests)
  res = tests.map do |test|
    [test.to_sym, {status: ::ParallelCucumber::Status::UNKNOWN}]
  end
  res.to_h
end