Что ж, у меня есть веб-приложение на основе Tomcat, написанное на Java и Spring-MVC Framework (и Maven), где я использую Selenium для тестирования некоторых страниц.
Перед тестами у меня есть следующие настройки:
@BeforeClass
public static void init() {
System.setProperty("webdriver.chrome.driver", "/usr/local/bin/chromedriver");
webDriver = new ChromeDriver();
webDriver.get("localhost:8080/app/login");
webDriver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
}
Если я запускаю приложение на своем локальном компьютере, а затем запускаю тесты, все работает отлично.
Проблема в том, что если я хочу, чтобы приложение тестировалось с Selenium, оно должно быть запущено (в противном случае, как мне подключиться к localhost?). Но как запустить веб-приложение на Travis CI до того, как приложение начнет проверять тесты?
Может быть, я должен использовать сторонние ресурсы? Или это можно сделать только с помощью Travis CI?
Я знаю, что в Heroku есть веб-приложение для запуска вашего веб-приложения, но есть ли инструмент для Трэвиса?
Обновлены.
Пока единственная идея, которая у меня есть, - это развернуть и запустить приложение на Heroku, а затем использовать это уже работающее приложение в тестах Selenium. Так будет в тестах: 1018 *
webDriver.get("someHerokuUrl");
И каждый толчок к Github будет таким: приложение автоматически развертывается на Heroku, а затем приложение тестируется на Travis CI.
Но я чувствую, что это неправильный путь.
Моя конфигурация .travis.yml:
language: java
jdk:
- openjdk8
sudo: required
dist: trusty
addons: # get google-chrome-stable
apt:
packages:
- google-chrome-stable
before_script:
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
- sleep 3
install:
- wget -N https://chromedriver.storage.googleapis.com/2.43/chromedriver_linux64.zip -P ~/
- unzip ~/chromedriver_linux64.zip -d ~/
- rm ~/chromedriver_linux64.zip
- sudo mv -f ~/chromedriver /usr/local/bin/
- sudo chmod +x /usr/local/bin/chromedriver