aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/java/com/xtremelabs/robolectric/RobolectricTestRunner.java26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/main/java/com/xtremelabs/robolectric/RobolectricTestRunner.java b/src/main/java/com/xtremelabs/robolectric/RobolectricTestRunner.java
index 420645e1d..b03307976 100644
--- a/src/main/java/com/xtremelabs/robolectric/RobolectricTestRunner.java
+++ b/src/main/java/com/xtremelabs/robolectric/RobolectricTestRunner.java
@@ -9,6 +9,7 @@ import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
import java.util.HashMap;
import java.util.Map;
+import java.util.logging.Logger;
import javassist.Loader;
@@ -45,6 +46,16 @@ import com.xtremelabs.robolectric.util.SQLiteMap;
*/
public class RobolectricTestRunner extends BlockJUnit4ClassRunner implements RobolectricTestRunnerInterface {
+ private static final String MANIFEST_PATH_PROPERTY = "robolectric.path.manifest";
+ private static final String RES_PATH_PROPERTY = "robolectric.path.res";
+ private static final String ASSETS_PATH_PROPERTY = "robolectric.path.assets";
+ private static final String DEFAULT_MANIFEST_PATH = "./AndroidManifest.xml";
+ private static final String DEFAULT_RES_PATH = "./res";
+ private static final String DEFAULT_ASSETS_PATH = "./assets";
+
+ private static final Logger logger =
+ Logger.getLogger(RobolectricTestRunner.class.getSimpleName());
+
/** Instrument detector. We use it to check whether the current instance is instrumented. */
private static InstrumentDetector instrumentDetector = InstrumentDetector.DEFAULT;
@@ -99,7 +110,10 @@ public class RobolectricTestRunner extends BlockJUnit4ClassRunner implements Rob
* @throws InitializationError if junit says so
*/
public RobolectricTestRunner(final Class<?> testClass) throws InitializationError {
- this(testClass, new RobolectricConfig(new File(".")));
+ this(testClass, new RobolectricConfig(
+ new File(getSystemProperty(MANIFEST_PATH_PROPERTY, DEFAULT_MANIFEST_PATH)),
+ new File(getSystemProperty(RES_PATH_PROPERTY, DEFAULT_RES_PATH)),
+ new File(getSystemProperty(ASSETS_PATH_PROPERTY, DEFAULT_ASSETS_PATH))));
}
/**
@@ -378,6 +392,16 @@ public class RobolectricTestRunner extends BlockJUnit4ClassRunner implements Rob
protected void resetStaticState() {
}
+ private static String getSystemProperty(String propertyName, String defaultValue) {
+ String property = System.getProperty(propertyName);
+ if (property == null) {
+ property = defaultValue;
+ logger.info("No system property " + propertyName + " found, default to "
+ + defaultValue);
+ }
+ return property;
+ }
+
/**
* Sets Robolectric config to determine if Robolectric should blacklist API calls that are not
* I18N/L10N-safe.