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.map do |scenario, cucumber_status|
    status = case cucumber_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
    [scenario, status]
  end.to_h
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