Created
December 6, 2011 18:09
-
-
Save artemave/1439225 to your computer and use it in GitHub Desktop.
Temporary copy/paste solution to start/stop rest-assured
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Somewhere in you env.rb /spec_helper.rb or the like | |
| require_relative "rest-assured-server" | |
| at_exit do | |
| RestAssuredServer.stop | |
| end | |
| RestAssuredServer.start | |
| # Do some other heavy lifting (e.g., start firefox) while it starts up | |
| while not RestAssuredServer.up? | |
| puts 'Waiting for RestAssuredServer to come up...' | |
| sleep 1 | |
| end |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| require 'net/http' | |
| class RestAssuredServer | |
| @pid_file = "./rest-assured.pid" | |
| def self.start(opts = {}) | |
| @server_port = opts[:port] || 9876 | |
| print 'Starting REST-assured server... ' | |
| p = Process.fork do | |
| if get_pid | |
| print "\nPrevious REST-assured instance appears to be running. Will be using it." | |
| else | |
| Process.exec("bundle exec rest-assured -p #{@server_port} -a mysql") | |
| end | |
| end | |
| Process.detach(p) | |
| puts 'Done.' | |
| end | |
| def self.stop | |
| print 'Shutting down REST-assured server... ' | |
| Process.kill('TERM', get_pid.to_i) rescue puts( "Failed to kill REST-assured server: #{$!}" ) | |
| puts 'Done.' | |
| end | |
| def self.server_address | |
| "http://localhost:#{@server_port}" | |
| end | |
| def self.up? | |
| Net::HTTP.new('localhost', @server_port).head('/') | |
| true | |
| rescue Errno::ECONNREFUSED | |
| false | |
| end | |
| private | |
| def self.get_pid | |
| `ps -eo pid,args`.split("\n").grep( /rest-assured -p #{@server_port}/ ).map{|p| p.split.first }.first | |
| end | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment