class Testcube::Tracker

Attributes

current_description[W]
current_exception[W]
current_line_number[W]
current_test_path[W]
test_files_with_time[R]

Public Class Methods

new() click to toggle source
# File lib/testcube/tracker.rb, line 10
def initialize
  set_defaults
end

Public Instance Methods

current_description() click to toggle source
# File lib/testcube/tracker.rb, line 41
def current_description
  raise("current_description needs to be set") unless @current_description
  @current_description
end
current_exception() click to toggle source
# File lib/testcube/tracker.rb, line 46
def current_exception
  # can be nil
  @current_exception
end
current_line_number() click to toggle source
# File lib/testcube/tracker.rb, line 36
def current_line_number
  raise("current_line_number needs to be set") unless @current_line_number
  @current_line_number
end
current_test_path() click to toggle source
# File lib/testcube/tracker.rb, line 31
def current_test_path
  raise("current_test_path needs to be set") unless @current_test_path
  @current_test_path.sub(/^\.\//, '')
end
num_specs() click to toggle source
# File lib/testcube/tracker.rb, line 55
def num_specs
  test_files_with_time.length
end
start_timer() click to toggle source
# File lib/testcube/tracker.rb, line 14
def start_timer
  @start_time = now_without_mock_time.to_f
end
stop_timer() click to toggle source
# File lib/testcube/tracker.rb, line 18
def stop_timer
  execution_time = @start_time ? now_without_mock_time.to_f - @start_time : 0.0
  @test_files_with_time.push({
    test_file: current_test_path,
    line_number: current_line_number,
    description: current_description,
    status: current_exception ? :fail : :pass,
    # TODO: we could have a better way to filter the backtrace
    backtrace: current_exception ? current_exception.backtrace.select { |s| s !~ /gems\/.*(rspec|bin)/ } : nil,
    execution_time: execution_time
  })
end
total_time() click to toggle source
# File lib/testcube/tracker.rb, line 51
def total_time
  test_files_with_time.map { |res| res[:execution_time] }.sum
end

Private Instance Methods

now_without_mock_time() click to toggle source
# File lib/testcube/tracker.rb, line 66
def now_without_mock_time
  if defined?(Timecop)
    Time.now_without_mock_time
  else
    Time.now
  end
end
set_defaults() click to toggle source
# File lib/testcube/tracker.rb, line 61
def set_defaults
  @global_time = 0
  @test_files_with_time = []
end