dinsdag 20 december 2016

Travis CI gebruiken om Cucumber icm PhatomJS te gebruiken

Op dit moment is het tevens mogelijk om in Travis CI te gebruiken voor het Cucumber-Java project via PhantomJS.

Wat heb je nodig:
  1. Cucumber-Java
  2. PhantomJS
  3. Een Travis account via je GitHub account "Sign in with GitHub" rechtsbovenaan
  4. Selecteer bij de eerste keer inloggen op Travis je eigen CucumberDemo project vanuit GitHub
  5. Het onderstaande .travis.yml bestand in de root van je Cucumber project
language: java
jdk:
- oraclejdk8
before_script:
- "export DISPLAY=:99.0"
- "sh -e /etc/init.d/xvfb start"
- sleep 3 # give xvfb some time to start

vrijdag 16 december 2016

PhantomJS binnen Cucumber gebruiken?

In een eerdere post Cucumber-Java heb ik uitleg gegeven hoe je makkelijk eens Cucumber kan bekijken. Als aanvulling heb ik het nu ook mogelijk gemaakt om PhantomJS naast Chrome of FireFox te gebruiken. Het voordeel is dat testen uitvoeren doorgaans een stuk sneller gaan en op de achtergrond worden uitgevoerd zonder dat daarvoor een browserscherm voor hoeft geworden gestart.

Hiervoor kun je het volgende stappenplan doorlopen:

  1. Download en installeer PhantomJS
    1. Download install-phantomjs.sh (bron: GitHub)
    2. Open het gedownloade bestand in gedit
    3. Voer per stap het script uit in een terminal venster
  2. Zet versie 3.01 van selenium-java in je pom.xml binnen het project met IntelliJ 
    <dependency>
    <groupId>org.seleniumhq.selenium</groupId>
    <artifactId>selenium-java</artifactId>
    <version>3.0.1</version>
    </dependency>
  3. Neem het volgende stukje code over in je SharedDriver.java bestand binnen het Cucumber-Java project binnen IntelliJ:
.....................................................
static {
    String browserName = System.getProperty("browser");
    if(browserName == null) {
        browserName = "phantomjs";
    }
    if(browserName.equals("firefox")) {
        REAL_DRIVER = new FirefoxDriver();
    }
    else if(browserName.equals("chrome")) {
        String pathToDriver = System.getProperty("pathToDriver");
        if(pathToDriver == null) {
            pathToDriver = "/usr/local/share/chromedriver";
        }
        System.setProperty("webdriver.chrome.driver", pathToDriver);
        REAL_DRIVER = new ChromeDriver();
    }

    else if(browserName.equals("phantomjs")) {
        String pathToDriver = System.getProperty("pathToDriver");
        if(pathToDriver == null) {
            pathToDriver = "/usr/local/share/phantomjs";
        }
        System.setProperty("webdriver.phantomjs.driver", pathToDriver);
        REAL_DRIVER = new PhantomJSDriver();
    }
..................