diff options
author | Siva Velusamy <vsiva@google.com> | 2013-11-11 16:35:37 -0800 |
---|---|---|
committer | Siva Velusamy <vsiva@google.com> | 2013-11-12 09:39:43 -0800 |
commit | 7053e4043f732bd9e0ea0d1c7ee2b7cc107660ad (patch) | |
tree | c8a3395e6991433fd620f6f47afdaf2406bbaa47 /android-gradle-jps | |
parent | b6e66494d086cd59d2175fac9f45bf1b994a266e (diff) | |
download | idea-7053e4043f732bd9e0ea0d1c7ee2b7cc107660ad.tar.gz |
Build tests for Java modules.
This CL adds a task to compile a Java module's test classes
when compilation is invoked in the context of a JUnit run
configuration.
Fixes: https://code.google.com/p/android/issues/detail?id=60916
Change-Id: Ic56606109837287bbf0fa1d2b711598463512e2a
Diffstat (limited to 'android-gradle-jps')
-rw-r--r-- | android-gradle-jps/src/com/android/tools/idea/jps/builder/AndroidGradleTargetBuilder.java | 47 |
1 files changed, 31 insertions, 16 deletions
diff --git a/android-gradle-jps/src/com/android/tools/idea/jps/builder/AndroidGradleTargetBuilder.java b/android-gradle-jps/src/com/android/tools/idea/jps/builder/AndroidGradleTargetBuilder.java index 6ec13789c03..969076275a8 100644 --- a/android-gradle-jps/src/com/android/tools/idea/jps/builder/AndroidGradleTargetBuilder.java +++ b/android-gradle-jps/src/com/android/tools/idea/jps/builder/AndroidGradleTargetBuilder.java @@ -27,6 +27,7 @@ import com.google.common.collect.Lists; import com.google.common.io.Closeables; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.util.io.FileUtil; +import com.intellij.util.ArrayUtil; import com.intellij.util.SystemProperties; import org.gradle.tooling.BuildException; import org.gradle.tooling.BuildLauncher; @@ -140,25 +141,25 @@ public class AndroidGradleTargetBuilder extends TargetBuilder<AndroidGradleBuild private static String[] getBuildTasks(@NotNull JpsProject project, @NotNull CompileContext context, @NotNull BuilderExecutionSettings executionSettings) { - boolean buildTests = AndroidJpsUtil.isInstrumentationTestContext(context); - List<String> tasks = Lists.newArrayList(); - BuildMode buildMode = executionSettings.getBuildMode(); if (buildMode.equals(BuildMode.CLEAN)) { - tasks.add(GradleBuilds.CLEAN_TASK_NAME); + return new String[] { GradleBuilds.CLEAN_TASK_NAME }; } - else { - for (JpsModule module : getModulesToBuild(project, executionSettings)) { - populateBuildTasks(module, executionSettings, tasks, buildTests); - } - if (!tasks.isEmpty()) { - boolean rebuild = JavaBuilderUtil.isForcedRecompilationAllJavaModules(context); - if (rebuild) { - tasks.add(0, GradleBuilds.CLEAN_TASK_NAME); - } + + List<String> tasks = Lists.newArrayList(); + + for (JpsModule module : getModulesToBuild(project, executionSettings)) { + populateBuildTasks(module, executionSettings, tasks, context); + } + + if (!tasks.isEmpty()) { + boolean rebuild = JavaBuilderUtil.isForcedRecompilationAllJavaModules(context); + if (rebuild) { + tasks.add(0, GradleBuilds.CLEAN_TASK_NAME); } } - return tasks.toArray(new String[tasks.size()]); + + return ArrayUtil.toStringArray(tasks); } @NotNull @@ -180,7 +181,7 @@ public class AndroidGradleTargetBuilder extends TargetBuilder<AndroidGradleBuild private static void populateBuildTasks(@NotNull JpsModule module, @NotNull BuilderExecutionSettings executionSettings, @NotNull List<String> tasks, - boolean buildTests) { + CompileContext context) { JpsAndroidGradleModuleExtension androidGradleFacet = AndroidGradleJps.getExtension(module); if (androidGradleFacet == null) { return; @@ -189,7 +190,21 @@ public class AndroidGradleTargetBuilder extends TargetBuilder<AndroidGradleBuild JpsAndroidModuleExtensionImpl androidFacet = (JpsAndroidModuleExtensionImpl)AndroidJpsUtil.getExtension(module); JpsAndroidModuleProperties properties = androidFacet != null ? androidFacet.getProperties() : null; - GradleBuilds.findAndAddBuildTask(module.getName(), executionSettings.getBuildMode(), gradleProjectPath, properties, tasks, buildTests); + GradleBuilds.TestCompileContext testCompileContext; + if (AndroidJpsUtil.isInstrumentationTestContext(context)) { + testCompileContext = GradleBuilds.TestCompileContext.ANDROID_TESTS; + } else if (AndroidJpsUtil.isJunitTestContext(context)) { + testCompileContext = GradleBuilds.TestCompileContext.JAVA_TESTS; + } else { + testCompileContext = GradleBuilds.TestCompileContext.NONE; + } + + GradleBuilds.findAndAddBuildTask(module.getName(), + executionSettings.getBuildMode(), + gradleProjectPath, + properties, + tasks, + testCompileContext); } private static void ensureTempDirExists() { |