Class: Test::Unit::UI::TestRunnerMediator

Inherits:
Object
  • Object
show all
Defined in:
lib/devcreek_testrunnermediator.rb

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ TestRunnerMediator

Returns a new instance of TestRunnerMediator.



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# File 'lib/devcreek_testrunnermediator.rb', line 21

def initialize(*args)
  result = old_initialize(*args)
  
  #DevCreek Modifications
  @@dev_creek_test_suite = nil
  @@dev_creek_reg = /([\w]*)\(([\w]*)\)/
  
  add_listener(Test::Unit::UI::TestRunnerMediator::STARTED) do |test_result| 
    $DEV_CREEK_LOG.debug "Test::Unit::TestRunnerMediator::STARTED: #{test_result}"
    @@dev_creek_test_suite = DevCreek::TestSuite.new("Test::Unit")
  end
  
  add_listener(Test::Unit::TestCase::STARTED) do |name| 
    $DEV_CREEK_LOG.debug "Test::Unit::TestCase::STARTED: #{name}"
    test_name = name.match(@@dev_creek_reg)[1]
    test_class = name.match(@@dev_creek_reg)[2]
    @@dev_creek_test_suite.test_results[name] = DevCreek::TestResult.new(test_name, test_class)
  end
  
  add_listener(Test::Unit::TestResult::FAULT) do |fault| 
    $DEV_CREEK_LOG.debug "Test::Unit::TestResult::FAULT: #{fault}"
    dc_test_result = @@dev_creek_test_suite.test_results[fault.test_name]
    if fault.instance_of? Test::Unit::Failure
      dc_test_result.has_a_failure
    else
      dc_test_result.has_an_error
    end
  end
  
  add_listener(Test::Unit::TestCase::FINISHED) do |test_name|
    $DEV_CREEK_LOG.debug "Test::Unit::TestCase::FINISHED: #{test_name}"
    @@dev_creek_test_suite.test_results[test_name].has_finished
  end
  
  add_listener(Test::Unit::UI::TestRunnerMediator::FINISHED) do |elapsed_time| 
    if DevCreek::Core.instance().enabled != false 
      @@dev_creek_test_suite.has_finished
      if @@dev_creek_test_suite.has_test_results?
        session_id = UUID.timestamp_create().to_s
        xml_data = @@dev_creek_test_suite.to_xml(session_id)
        $DEV_CREEK_LOG.debug "Submitting body: \n #{xml_data}"
        $DEV_CREEK_LOG.info "Attempting DevCreek transmission..."
        response = DevCreek::Transmitter.submit(session_id, xml_data)     
        case response
        when Net::HTTPSuccess
          $DEV_CREEK_LOG.info "...transmission successful."
        else
          $DEV_CREEK_LOG.error "...failure transmiting TestUnit results to DevCreek - HTTPResponse with Code # #{response.code}, HTTPResponse message \"#{response.message}\""
        end  
      end  
    end
  end
  
  return result
end

Instance Method Details

#old_initializeObject



19
# File 'lib/devcreek_testrunnermediator.rb', line 19

alias_method :old_initialize,  :initialize