diff options
author | Zhihong Xu <zhihongx@google.com> | 2013-04-30 17:08:37 -0700 |
---|---|---|
committer | Zhihong Xu <zhihongx@google.com> | 2013-04-30 17:48:10 -0700 |
commit | ac7845ae66b3839e20a3d43dd72fc50722cf2285 (patch) | |
tree | 121f22580537109be29237a52e56c7f5b61207c4 | |
parent | bf0552f88312525e8f291c7cab0e1584b9f6ba76 (diff) | |
download | robolectric-ac7845ae66b3839e20a3d43dd72fc50722cf2285.tar.gz |
Let robolectric read manifest,res,assets from System properties
Change-Id: I1ad19db93694a02eabf249777fbc895d0f2f76a1
-rw-r--r-- | src/main/java/com/xtremelabs/robolectric/RobolectricTestRunner.java | 26 |
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. |