Browse Source

Allow running tests locally by overriding runLocally() (#12786)

Uses Firefox either from path or from the location given using firefox.path in /work/run-eclipse-run-selected-test.properties

Change-Id: I29faa94cac4c978792a8fab9db338048553d166a
tags/7.1.8
Artur Signell 10 years ago
parent
commit
f9ea9b31d4

+ 22
- 0
uitest/src/com/vaadin/tests/tb3/AbstractTB3Test.java View File

@@ -104,6 +104,10 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {
* If something goes wrong
*/
protected void setupDriver() throws Exception {
if (runLocally()) {
setupLocalDriver();
return;
}
DesiredCapabilities capabilities = getDesiredCapabilities();

WebDriver dr = TestBench.createDriver(new RemoteWebDriver(new URL(
@@ -126,6 +130,23 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {

}

/**
* Override and return true to run the test locally. This method is only to
* be used for developing tests.
*
* @return true to run the test on a local browser, false to use the hub
*/
public boolean runLocally() {
return false;
}

/**
* Creates a {@link WebDriver} instance used for running the test locally
* for debug purposes. Used only when {@link #runLocally()} is overridden to
* return true;
*/
protected abstract void setupLocalDriver();

/**
* Opens the given test (defined by {@link #getTestUrl(boolean, boolean)},
* optionally with debug window and/or push
@@ -792,4 +813,5 @@ public abstract class AbstractTB3Test extends TestBenchTestCase {
// Do nothing by default

}

}

+ 25
- 0
uitest/src/com/vaadin/tests/tb3/PrivateTB3Configuration.java View File

@@ -25,6 +25,12 @@ import java.net.SocketException;
import java.util.Enumeration;
import java.util.Properties;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxBinary;
import org.openqa.selenium.firefox.FirefoxDriver;

import com.vaadin.testbench.TestBench;

/**
* Provides values for parameters which depend on where the test is run.
* Parameters should be configured in work/eclipse-run-selected-test.properties.
@@ -132,4 +138,23 @@ public abstract class PrivateTB3Configuration extends ScreenshotTB3Test {
"No compatible (192.168.*) ip address found.");
}

/*
* (non-Javadoc)
*
* @see com.vaadin.tests.tb3.AbstractTB3Test#setupLocalDriver()
*/
@Override
protected void setupLocalDriver() {
String firefoxPath = getProperty("firefox.path");
WebDriver driver;
if (firefoxPath != null) {
driver = new FirefoxDriver(
new FirefoxBinary(new File(firefoxPath)), null);
} else {
driver = new FirefoxDriver();
}
setDriver(TestBench.createDriver(driver));
setDesiredCapabilities(BrowserUtil
.firefox(MultiBrowserTest.TESTED_FIREFOX_VERSION));
}
}

+ 10
- 2
uitest/src/com/vaadin/tests/tb3/TB3Runner.java View File

@@ -17,6 +17,8 @@
package com.vaadin.tests.tb3;

import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
import java.util.concurrent.ExecutorService;
@@ -72,8 +74,14 @@ public class TB3Runner extends BlockJUnit4ClassRunner {
try {
AbstractTB3Test testClassInstance = (AbstractTB3Test) getTestClass()
.getOnlyConstructor().newInstance();
for (DesiredCapabilities capabilities : testClassInstance
.getBrowsersToTest()) {
Collection<DesiredCapabilities> desiredCapabilites = testClassInstance
.getBrowsersToTest();
if (testClassInstance.runLocally()) {
desiredCapabilites = new ArrayList<DesiredCapabilities>();
desiredCapabilites.add(BrowserUtil
.firefox(MultiBrowserTest.TESTED_FIREFOX_VERSION));
}
for (DesiredCapabilities capabilities : desiredCapabilites) {

// Find any methods marked with @Test.
for (FrameworkMethod m : getTestClass().getAnnotatedMethods(

Loading…
Cancel
Save