Skip to content
This repository was archived by the owner on Mar 25, 2025. It is now read-only.

Commit b341773

Browse files
slu-itAxel Schüssler
authored andcommitted
Enabled Travis-CI build to use dockerized Selenium Grid
This allows for testing the newest supported Firefox and Chrome in CI, depending on our Selenium Version.
1 parent f360348 commit b341773

File tree

5 files changed

+88
-25
lines changed

5 files changed

+88
-25
lines changed

.travis.yml

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,37 @@
11
language: java
22
jdk:
33
- oraclejdk8
4+
sudo: required
45

6+
services:
7+
- docker
8+
9+
before_install:
10+
- sudo apt-get update
11+
- sudo apt-get install --assume-yes --option Dpkg::Options::="--force-confnew" docker-engine
12+
- sudo rm /usr/local/bin/docker-compose
13+
- curl -L https://github.com/docker/compose/releases/download/1.8.1/docker-compose-`uname -s`-`uname -m` > docker-compose
14+
- chmod +x docker-compose
15+
- sudo cp docker-compose /usr/local/bin && rm docker-compose
516
install: true
617

718
before_script:
8-
- "export DISPLAY=:99.0"
9-
- "sh -e /etc/init.d/xvfb start"
10-
- sleep 3 # give xvfb some time to start
19+
- docker --version
20+
- docker-compose --version
21+
- docker-compose up -d
1122
script:
12-
- mvn clean
13-
- mvn verify -P code-quality,documentation,release
23+
- >
24+
mvn clean verify
25+
-P code-quality,documentation,release
26+
-DtestProfile=remote
27+
-Dremote.browser.name=firefox
28+
-Dremote.firefox.marionette=false
29+
-DtestPageServerHost=172.17.0.1
30+
- >
31+
mvn clean verify
32+
-P code-quality,documentation,release
33+
-DtestProfile=remote
34+
-Dremote.browser.name=chrome
35+
-DtestPageServerHost=172.17.0.1
1436
after_success:
1537
- bash <(curl -s https://codecov.io/bash)
16-
17-
addons:
18-
apt:
19-
packages:
20-
- oracle-java8-installer

docker-compose.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
hub:
2+
image: selenium/hub:3.0.1-aluminum
3+
ports:
4+
- "4444:4444"
5+
firefox:
6+
image: selenium/node-firefox:2.53.1-beryllium
7+
links:
8+
- hub
9+
chrome:
10+
image: selenium/node-chrome:3.0.1-aluminum
11+
links:
12+
- hub

webtester-core/src/test/java/integration/BaseIntegrationTest.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,10 @@
2525
public class BaseIntegrationTest {
2626

2727
private static final String TEST_PAGE_SERVER_HOST = System.getProperty("testPageServerHost", "localhost");
28-
2928
private static final int TEST_PAGE_SERVER_PORT = Integer.parseInt(System.getProperty("testPageServerPort", "8080"));
30-
3129
private static final String TEST_PAGE_SERVER_BASE_ADDRESS = String.format("http://%s:%d/", TEST_PAGE_SERVER_HOST, TEST_PAGE_SERVER_PORT);
3230

3331
private static Server server;
34-
3532
private static Browser browser;
3633

3734
@BeforeClass
Lines changed: 33 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,48 @@
11
package utils;
22

33
import org.openqa.selenium.WebDriver;
4+
import org.openqa.selenium.remote.DesiredCapabilities;
45

56
import info.novatec.testit.webtester.browser.Browser;
6-
import info.novatec.testit.webtester.browser.WebDriverBrowser;
7+
import info.novatec.testit.webtester.browser.BrowserFactory;
78
import info.novatec.testit.webtester.browser.factories.FirefoxFactory;
8-
import info.novatec.testit.webtester.config.Configuration;
9-
import info.novatec.testit.webtester.config.adapters.DefaultFileConfigurationAdapter;
10-
import info.novatec.testit.webtester.config.adapters.LocalFileConfigurationAdapter;
11-
import info.novatec.testit.webtester.config.builders.BaseConfigurationBuilder;
9+
import info.novatec.testit.webtester.browser.factories.RemoteFactory;
10+
import info.novatec.testit.webtester.browser.proxy.ProxyConfiguration;
1211

1312

14-
public class TestBrowserFactory extends FirefoxFactory {
13+
public class TestBrowserFactory implements BrowserFactory {
1514

1615
@Override
17-
public Browser createBrowser(WebDriver webDriver) {
18-
Configuration config = new BaseConfigurationBuilder()
19-
.withAdapter(new DefaultFileConfigurationAdapter())
20-
.withAdapter(new LocalFileConfigurationAdapter())
21-
.build();
22-
Browser browser = WebDriverBrowser.forWebDriver(webDriver).withConfiguration(config).build();
16+
public Browser createBrowser() {
17+
Browser browser = createBrowserFromProfile();
2318
Runtime.getRuntime().addShutdownHook(new Thread(browser::close));
2419
return browser;
2520
}
2621

22+
private Browser createBrowserFromProfile() {
23+
switch (System.getProperty("testProfile", "local")){
24+
case "local":
25+
return new FirefoxFactory().createBrowser();
26+
case "remote":
27+
return new RemoteFactory().createBrowser();
28+
default:
29+
throw new IllegalArgumentException("unknown test profile: " + System.getProperty("testProfile", "local"));
30+
}
31+
}
32+
33+
@Override
34+
public Browser createBrowser(DesiredCapabilities capabilities) {
35+
throw new UnsupportedOperationException("createBrowser(DesiredCapabilities capabilities) not supported in test browser!");
36+
}
37+
38+
@Override
39+
public Browser createBrowser(WebDriver webDriver) {
40+
throw new UnsupportedOperationException("createBrowser(WebDriver webDriver) not supported in test browser!");
41+
}
42+
43+
@Override
44+
public BrowserFactory withProxyConfiguration(ProxyConfiguration configuration) {
45+
throw new UnsupportedOperationException("proxy not supported in test browser!");
46+
}
47+
2748
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<configuration>
3+
4+
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %5le ${PID:- } [%t] --- %lo : %m%n%ex"/>
5+
6+
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
7+
<encoder>
8+
<pattern>${LOG_PATTERN}</pattern>
9+
</encoder>
10+
</appender>
11+
12+
<root level="ERROR">
13+
<appender-ref ref="CONSOLE" />
14+
</root>
15+
16+
</configuration>

0 commit comments

Comments
 (0)