diff options
Diffstat (limited to 'library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java')
-rw-r--r-- | library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java b/library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java index 61baa23..509201a 100644 --- a/library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java +++ b/library/test/robotest/src/com/android/setupwizardlib/robolectric/SuwLibRobolectricTestRunner.java @@ -20,13 +20,42 @@ import org.junit.runner.notification.RunNotifier; import org.junit.runners.model.FrameworkMethod; import org.junit.runners.model.InitializationError; import org.robolectric.RobolectricTestRunner; +import org.robolectric.annotation.Config; +import org.robolectric.internal.ManifestFactory; public class SuwLibRobolectricTestRunner extends RobolectricTestRunner { + private String mModuleRootPath; + public SuwLibRobolectricTestRunner(Class<?> testClass) throws InitializationError { super(testClass); } + // Hack to determine the module root path in the build folder (e.g. out/gradle/setup-wizard-lib) + private void updateModuleRootPath(Config config) { + String moduleRoot = config.constants().getResource("").toString() + .replace("file:", "").replace("jar:", ""); + mModuleRootPath = + moduleRoot.substring(0, moduleRoot.lastIndexOf("/build")) + "/setup-wizard-lib"; + } + + /** + * Return the default config used to run Robolectric tests. + */ + @Override + protected Config buildGlobalConfig() { + Config parent = super.buildGlobalConfig(); + updateModuleRootPath(parent); + return new Config.Builder(parent) + .setBuildDir(mModuleRootPath + "/build") + .build(); + } + + @Override + protected ManifestFactory getManifestFactory(Config config) { + return new PatchedGradleManifestFactory(); + } + @Override protected void runChild(FrameworkMethod method, RunNotifier notifier) { System.out.println("===== Running " + method + " ====="); |