Class: Jasmine::Runner
- Inherits:
-
Object
- Object
- Jasmine::Runner
- Defined in:
- lib/jasmine-ruby/jasmine_runner.rb
Instance Method Summary collapse
- #eval_js(script) ⇒ Object
-
#initialize(selenium_jar_path, root_path, spec_files, options = {}) ⇒ Runner
constructor
A new instance of Runner.
- #run ⇒ Object
- #start ⇒ Object
- #start_servers ⇒ Object
- #stop ⇒ Object
- #stop_servers ⇒ Object
Constructor Details
#initialize(selenium_jar_path, root_path, spec_files, options = {}) ⇒ Runner
Returns a new instance of Runner.
229 230 231 232 233 234 235 236 237 238 |
# File 'lib/jasmine-ruby/jasmine_runner.rb', line 229 def initialize(selenium_jar_path, root_path, spec_files, ={}) @root_path = root_path @selenium_jar_path = selenium_jar_path @spec_files = spec_files @options = @browser = [:browser] ? [:browser].delete(:browser) : 'firefox' @selenium_pid = nil @jasmine_server_pid = nil end |
Instance Method Details
#eval_js(script) ⇒ Object
289 290 291 |
# File 'lib/jasmine-ruby/jasmine_runner.rb', line 289 def eval_js(script) @client.eval_js(script) end |
#run ⇒ Object
278 279 280 281 282 283 284 285 286 287 |
# File 'lib/jasmine-ruby/jasmine_runner.rb', line 278 def run begin start puts "servers are listening on their ports -- running the test script..." tests_passed = @client.run ensure stop end return tests_passed end |
#start ⇒ Object
240 241 242 243 244 |
# File 'lib/jasmine-ruby/jasmine_runner.rb', line 240 def start start_servers @client = Jasmine::SimpleClient.new("localhost", @selenium_server_port, "*#{@browser}", "http://localhost:#{@jasmine_server_port}/") @client.connect end |
#start_servers ⇒ Object
251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 |
# File 'lib/jasmine-ruby/jasmine_runner.rb', line 251 def start_servers @jasmine_server_port = Jasmine::find_unused_port @selenium_server_port = Jasmine::find_unused_port @selenium_pid = fork do Process.setpgrp exec "java -jar #{@selenium_jar_path} -port #{@selenium_server_port} > /dev/null 2>&1" end puts "selenium started. pid is #{@selenium_pid}" @jasmine_server_pid = fork do Process.setpgrp Jasmine::SimpleServer.start(@jasmine_server_port, @root_path, @spec_files, @options) exit! 0 end puts "jasmine server started. pid is #{@jasmine_server_pid}" Jasmine::wait_for_listener(@selenium_server_port, "selenium server") Jasmine::wait_for_listener(@jasmine_server_port, "jasmine server") end |
#stop ⇒ Object
246 247 248 249 |
# File 'lib/jasmine-ruby/jasmine_runner.rb', line 246 def stop @client.disconnect stop_servers end |
#stop_servers ⇒ Object
272 273 274 275 276 |
# File 'lib/jasmine-ruby/jasmine_runner.rb', line 272 def stop_servers puts "shutting down the servers..." Jasmine::kill_process_group(@selenium_pid) if @selenium_pid Jasmine::kill_process_group(@jasmine_server_pid) if @jasmine_server_pid end |