65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
# File 'lib/auto_pilot/selenium_runner.rb', line 65
def run
server = nil
FileUtils.rm_r(dir) if self.clean? && File.exist?(dir)
PassFailFile.clean(dir)
server_thread = Thread.new do
server = HTTPServer.new(:Port => @port)
server.mount("/postResults", SeleniumTestResultsServlet, @dir)
trap("INT"){ server.shutdown }
server.start
end
@suites.each do |suite|
begin
puts suite
res = Net::HTTP.get_response(URI.parse(suite))
next unless res.code == '200'
rescue Errno::ECONNREFUSED => error
puts error
next
end
processor_thread = Thread.new do
ResultsState.waiting = true
poller = ResultsStatePoller.new
poller.timeout = @timeout
poller.interval = @interval
start_time = Time.now
trap("INT"){ poller.stop; break }
poller.start
end
browser = Browser.new(@browser_name, suite, @port)
puts "starting browser ", browser.name
browser.start
processor_thread.join
puts "quitting browser #{@browser_name}"
browser.stop
end
server.shutdown
server_thread.join
end
|