mirror of
https://github.com/teamcapybara/capybara.git
synced 2022-11-09 12:08:07 -05:00
Move waiting for Selenium docker instances into ruby code
This commit is contained in:
parent
a8fdf19421
commit
3ecc48b93d
4 changed files with 33 additions and 27 deletions
20
.travis.yml
20
.travis.yml
|
@ -95,21 +95,11 @@ before_script:
|
||||||
awesome &
|
awesome &
|
||||||
fi
|
fi
|
||||||
- if [[ $CAPYBARA_REMOTE = true ]]; then
|
- if [[ $CAPYBARA_REMOTE = true ]]; then
|
||||||
docker-compose up -d
|
if [[ $CAPYBARA_FF = true ]]; then
|
||||||
|
docker-compose up -d selenium_firefox;
|
||||||
TIMEOUT=20
|
else
|
||||||
|
docker-compose up -d selenium_chrome;
|
||||||
until wget --spider http://localhost:4444 > /dev/null 2>&1 || [ $TIMEOUT -eq 0 ]; do
|
fi;
|
||||||
echo "Waiting for selenium server, $((TIMEOUT--)) remaining attempts...";
|
|
||||||
sleep 1;
|
|
||||||
done
|
|
||||||
|
|
||||||
TIMEOUT=20
|
|
||||||
|
|
||||||
until wget --spider http://localhost:4445 > /dev/null 2>&1 || [ $TIMEOUT -eq 0 ]; do
|
|
||||||
echo "Waiting for selenium server, $((TIMEOUT--)) remaining attempts...";
|
|
||||||
sleep 1;
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
script: "bundle exec rake travis"
|
script: "bundle exec rake travis"
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
---
|
|
||||||
version: "3"
|
version: "3"
|
||||||
|
|
||||||
services:
|
services:
|
||||||
selenium_chrome:
|
selenium_chrome:
|
||||||
network_mode: "host"
|
network_mode: "host"
|
||||||
|
|
|
@ -14,11 +14,20 @@ def selenium_port
|
||||||
end
|
end
|
||||||
|
|
||||||
def ensure_selenium_running!
|
def ensure_selenium_running!
|
||||||
|
timer = Capybara::Helpers.timer(expire_in: 20)
|
||||||
|
begin
|
||||||
TCPSocket.open(selenium_host, selenium_port)
|
TCPSocket.open(selenium_host, selenium_port)
|
||||||
rescue
|
rescue
|
||||||
|
if timer.expired?
|
||||||
raise 'Selenium is not running. ' \
|
raise 'Selenium is not running. ' \
|
||||||
"You can run a selenium server easily with: \n" \
|
"You can run a selenium server easily with: \n" \
|
||||||
' $ docker-compose up -d selenium_chrome'
|
' $ docker-compose up -d selenium_chrome'
|
||||||
|
else
|
||||||
|
puts "Waiting for Selenium docker instance..."
|
||||||
|
sleep 1
|
||||||
|
retry
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Capybara.register_driver :selenium_chrome_remote do |app|
|
Capybara.register_driver :selenium_chrome_remote do |app|
|
||||||
|
|
|
@ -14,11 +14,20 @@ def selenium_port
|
||||||
end
|
end
|
||||||
|
|
||||||
def ensure_selenium_running!
|
def ensure_selenium_running!
|
||||||
|
timer = Capybara::Helpers.timer(expire_in: 20)
|
||||||
|
begin
|
||||||
TCPSocket.open(selenium_host, selenium_port)
|
TCPSocket.open(selenium_host, selenium_port)
|
||||||
rescue
|
rescue
|
||||||
|
if timer.expired?
|
||||||
raise 'Selenium is not running. ' \
|
raise 'Selenium is not running. ' \
|
||||||
"You can run a selenium server easily with: \n" \
|
"You can run a selenium server easily with: \n" \
|
||||||
' $ docker-compose up -d selenium_firefox'
|
' $ docker-compose up -d selenium_firefox'
|
||||||
|
else
|
||||||
|
puts "Waiting for Selenium docker instance..."
|
||||||
|
sleep 1
|
||||||
|
retry
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
Capybara.register_driver :selenium_firefox_remote do |app|
|
Capybara.register_driver :selenium_firefox_remote do |app|
|
||||||
|
|
Loading…
Add table
Reference in a new issue