From 7830d204aa6cc96ae1151febb90b2a6f4b032ccd Mon Sep 17 00:00:00 2001 From: Sergey Rostov Date: Thu, 4 Apr 2019 20:13:43 +0300 Subject: [PATCH] Gradle, tests: cleanAllTests task #KT-29946 --- .../gradle/testing/internal/testsRegistry.kt | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/testing/internal/testsRegistry.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/testing/internal/testsRegistry.kt index b047a247dc4..7fd50ae49a5 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/testing/internal/testsRegistry.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/testing/internal/testsRegistry.kt @@ -13,27 +13,36 @@ import org.jetbrains.kotlin.gradle.plugin.TaskHolder import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmTestTask import org.jetbrains.kotlin.gradle.tasks.AggregateTestReport import org.jetbrains.kotlin.gradle.tasks.locateOrRegisterTask +import org.jetbrains.kotlin.util.capitalizeDecapitalize.capitalizeFirstWord -internal val Project.allTestsTask: TaskHolder +private val Project.allTestsTask: TaskHolder get() = locateOrRegisterTask("allTests") { aggregate -> tasks.maybeCreate(LifecycleBasePlugin.CHECK_TASK_NAME).dependsOn(aggregate) - description = "Runs the tests for all targets and create aggregated report" - group = JavaBasePlugin.VERIFICATION_GROUP + aggregate.description = "Runs the tests for all targets and create aggregated report" + aggregate.group = JavaBasePlugin.VERIFICATION_GROUP aggregate.reports.configureConventions(project, "all") aggregate.onlyIf { aggregate.testTasks.size > 1 } + + if (System.getProperty("idea.active") != null) { + aggregate.extensions.extraProperties.set("idea.internal.test", true) + } } +private fun cleanTaskName(taskName: String) = "clean" + taskName.capitalize() + @Suppress("UnstableApiUsage") internal fun registerTestTask(task: AbstractTestTask) { val project = task.project - project.tasks.maybeCreate(LifecycleBasePlugin.CHECK_TASK_NAME).dependsOn(task) - val allTests = project.allTestsTask.doGetTask() + + project.tasks.maybeCreate(LifecycleBasePlugin.CHECK_TASK_NAME).dependsOn(task) + project.tasks.maybeCreate(cleanTaskName(allTests.name)).dependsOn(cleanTaskName(task.name)) + allTests.dependsOn(task) allTests.registerTestTask(task)