Class: Rpruby::Cucumber::ParallelReport

Inherits:
Report
  • Object
show all
Defined in:
lib/rpruby/cucumber/parallel_report.rb

Constant Summary collapse

FILE_WITH_LAUNCH_ID =
Pathname(Dir.tmpdir) + "parallel_launch_id_for_#{Process.ppid}.lck"

Instance Method Summary collapse

Methods inherited from Report

#attach_to_launch?, #embed, #puts, #start_launch, #test_case_finished, #test_case_started, #test_step_finished, #test_step_started

Constructor Details

#initializeParallelReport

Returns a new instance of ParallelReport.



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/rpruby/cucumber/parallel_report.rb', line 14

def initialize
  @root_node = Tree::TreeNode.new('')
  @parent_item_node = @root_node
  @last_used_time ||= 0

  if ParallelTests.first_process?
    File.open(FILE_WITH_LAUNCH_ID, 'w') do |f|
      f.flock(File::LOCK_EX)
      start_launch
      f.write(Rpruby.launch_id)
      f.flush
      f.flock(File::LOCK_UN)
    end
  else
    File.open(FILE_WITH_LAUNCH_ID, 'r') do |f|
      f.flock(File::LOCK_SH)
      ReportPortal.launch_id = f.read
      f.flock(File::LOCK_UN)
    end
  end
end

Instance Method Details

#parallel?Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/rpruby/cucumber/parallel_report.rb', line 10

def parallel?
  true
end

#test_run_finished(_event, desired_time = Rpruby.now) ⇒ Object



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/rpruby/cucumber/parallel_report.rb', line 36

def test_run_finished(_event, desired_time = Rpruby.now)
  end_feature(desired_time) unless @parent_item_node.is_root?

  if ParallelTests.first_process?
    ParallelTests.wait_for_other_processes_to_finish

    File.delete(FILE_WITH_LAUNCH_ID)

    unless attach_to_launch?
      $stdout.puts "Finishing launch #{Rpruby.launch_id}"
      Rpruby.close_child_items(nil)
      time_to_send = time_to_send(desired_time)
      Rpruby.finish_launch(time_to_send)
    end
  end
end