Gradle, js, single platform projects: create single test aggregator
Extract KotlinTestsRegistry service for customizing aggregated test tasks naming.
This commit is contained in:
+7
-1
@@ -30,9 +30,9 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinMultiplatformPlugin
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinUsages
|
||||||
import org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSetFactory
|
import org.jetbrains.kotlin.gradle.plugin.sources.DefaultKotlinSourceSetFactory
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlugin
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlugin
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsPlugin
|
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KOTLIN_COMPILER_EMBEDDABLE
|
import org.jetbrains.kotlin.gradle.tasks.KOTLIN_COMPILER_EMBEDDABLE
|
||||||
import org.jetbrains.kotlin.gradle.tasks.KOTLIN_MODULE_GROUP
|
import org.jetbrains.kotlin.gradle.tasks.KOTLIN_MODULE_GROUP
|
||||||
|
import org.jetbrains.kotlin.gradle.testing.internal.KotlinTestsRegistry
|
||||||
import org.jetbrains.kotlin.gradle.utils.checkGradleCompatibility
|
import org.jetbrains.kotlin.gradle.utils.checkGradleCompatibility
|
||||||
import org.jetbrains.kotlin.gradle.utils.loadPropertyFromResources
|
import org.jetbrains.kotlin.gradle.utils.loadPropertyFromResources
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
@@ -73,6 +73,8 @@ abstract class KotlinBasePluginWrapper(
|
|||||||
project.kotlinExtension.sourceSets = kotlinSourceSetContainer(kotlinSourceSetFactory(project))
|
project.kotlinExtension.sourceSets = kotlinSourceSetContainer(kotlinSourceSetFactory(project))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
project.extensions.add(KotlinTestsRegistry.PROJECT_EXTENSION_NAME, createTestRegistry(project))
|
||||||
|
|
||||||
val plugin = getPlugin(project, kotlinGradleBuildServices)
|
val plugin = getPlugin(project, kotlinGradleBuildServices)
|
||||||
|
|
||||||
setupAttributeMatchingStrategy(project)
|
setupAttributeMatchingStrategy(project)
|
||||||
@@ -80,6 +82,8 @@ abstract class KotlinBasePluginWrapper(
|
|||||||
plugin.apply(project)
|
plugin.apply(project)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
internal open fun createTestRegistry(project: Project) = KotlinTestsRegistry(project)
|
||||||
|
|
||||||
private fun setupAttributeMatchingStrategy(project: Project) = with(project.dependencies.attributesSchema) {
|
private fun setupAttributeMatchingStrategy(project: Project) = with(project.dependencies.attributesSchema) {
|
||||||
KotlinPlatformType.setupAttributesMatchingStrategy(this)
|
KotlinPlatformType.setupAttributesMatchingStrategy(this)
|
||||||
KotlinUsages.setupAttributesMatchingStrategy(this)
|
KotlinUsages.setupAttributesMatchingStrategy(this)
|
||||||
@@ -144,6 +148,8 @@ open class KotlinJsPluginWrapper @Inject constructor(
|
|||||||
|
|
||||||
override val projectExtensionClass: KClass<out KotlinJsProjectExtension>
|
override val projectExtensionClass: KClass<out KotlinJsProjectExtension>
|
||||||
get() = KotlinJsProjectExtension::class
|
get() = KotlinJsProjectExtension::class
|
||||||
|
|
||||||
|
override fun createTestRegistry(project: Project) = KotlinTestsRegistry(project, "test")
|
||||||
}
|
}
|
||||||
|
|
||||||
open class KotlinMultiplatformPluginWrapper @Inject constructor(
|
open class KotlinMultiplatformPluginWrapper @Inject constructor(
|
||||||
|
|||||||
+2
-2
@@ -26,7 +26,7 @@ import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
||||||
import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmTest
|
import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmTest
|
||||||
import org.jetbrains.kotlin.gradle.tasks.createOrRegisterTask
|
import org.jetbrains.kotlin.gradle.tasks.createOrRegisterTask
|
||||||
import org.jetbrains.kotlin.gradle.testing.internal.registerTestTask
|
import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry
|
||||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||||
import java.util.concurrent.Callable
|
import java.util.concurrent.Callable
|
||||||
|
|
||||||
@@ -383,7 +383,7 @@ abstract class KotlinTargetConfigurator<KotlinCompilationType : KotlinCompilatio
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
registerTestTask(testTask)
|
target.project.kotlinTestRegistry.registerTestTask(testTask)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun addJar(configuration: Configuration, jarArtifact: PublishArtifact) {
|
private fun addJar(configuration: Configuration, jarArtifact: PublishArtifact) {
|
||||||
|
|||||||
+6
-7
@@ -9,6 +9,7 @@ import org.gradle.api.Project
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator.Companion.runTaskNameSuffix
|
import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator.Companion.runTaskNameSuffix
|
||||||
import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator.Companion.testTaskNameSuffix
|
import org.jetbrains.kotlin.gradle.plugin.AbstractKotlinTargetConfigurator.Companion.testTaskNameSuffix
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.TaskHolder
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTarget
|
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTarget
|
||||||
import org.jetbrains.kotlin.gradle.plugin.whenEvaluated
|
import org.jetbrains.kotlin.gradle.plugin.whenEvaluated
|
||||||
@@ -17,20 +18,18 @@ import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsNodeDsl
|
|||||||
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl
|
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinBrowserJs
|
import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinBrowserJs
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinNodeJs
|
import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinNodeJs
|
||||||
import org.jetbrains.kotlin.gradle.testing.internal.allTestsTask
|
import org.jetbrains.kotlin.gradle.testing.internal.KotlinTestReport
|
||||||
import org.jetbrains.kotlin.gradle.testing.internal.getOrCreateAggregatedTestTask
|
import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry
|
||||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||||
|
|
||||||
class KotlinJsTarget(project: Project, platformType: KotlinPlatformType) :
|
class KotlinJsTarget(project: Project, platformType: KotlinPlatformType) :
|
||||||
KotlinOnlyTarget<KotlinJsCompilation>(project, platformType), KotlinJsTargetDsl {
|
KotlinOnlyTarget<KotlinJsCompilation>(project, platformType), KotlinJsTargetDsl {
|
||||||
|
|
||||||
val testTaskName get() = lowerCamelCaseName(disambiguationClassifier, testTaskNameSuffix)
|
val testTaskName get() = lowerCamelCaseName(disambiguationClassifier, testTaskNameSuffix)
|
||||||
val testTask
|
val testTask: TaskHolder<KotlinTestReport>
|
||||||
get() = project.getOrCreateAggregatedTestTask(
|
get() = project.kotlinTestRegistry.getOrCreateAggregatedTestTask(
|
||||||
name = testTaskName,
|
name = testTaskName,
|
||||||
description = "Run JS tests for all platforms",
|
description = "Run JS tests for all platforms"
|
||||||
reportName = "jsAll",
|
|
||||||
parent = project.allTestsTask.doGetTask()
|
|
||||||
)
|
)
|
||||||
|
|
||||||
val runTaskName get() = lowerCamelCaseName(disambiguationClassifier, runTaskNameSuffix)
|
val runTaskName get() = lowerCamelCaseName(disambiguationClassifier, runTaskNameSuffix)
|
||||||
|
|||||||
+2
-4
@@ -17,8 +17,7 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
|
|||||||
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
|
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
|
||||||
import org.jetbrains.kotlin.gradle.tasks.createOrRegisterTask
|
import org.jetbrains.kotlin.gradle.tasks.createOrRegisterTask
|
||||||
import org.jetbrains.kotlin.gradle.testing.internal.configureConventions
|
import org.jetbrains.kotlin.gradle.testing.internal.configureConventions
|
||||||
import org.jetbrains.kotlin.gradle.testing.internal.registerTestTask
|
import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry
|
||||||
import org.jetbrains.kotlin.gradle.testing.internal.registerTestTaskInAggregate
|
|
||||||
import org.jetbrains.kotlin.utils.addIfNotNull
|
import org.jetbrains.kotlin.utils.addIfNotNull
|
||||||
|
|
||||||
abstract class KotlinJsSubTarget(
|
abstract class KotlinJsSubTarget(
|
||||||
@@ -86,8 +85,7 @@ abstract class KotlinJsSubTarget(
|
|||||||
testJs.configureConventions()
|
testJs.configureConventions()
|
||||||
}
|
}
|
||||||
|
|
||||||
registerTestTaskInAggregate(testJs, target.testTask.doGetTask())
|
target.project.kotlinTestRegistry.registerTestTask(testJs, target.testTask.doGetTask())
|
||||||
registerTestTask(testJs)
|
|
||||||
|
|
||||||
project.whenEvaluated {
|
project.whenEvaluated {
|
||||||
testJs.configure {
|
testJs.configure {
|
||||||
|
|||||||
+2
-3
@@ -18,14 +18,13 @@ import org.gradle.api.plugins.BasePlugin
|
|||||||
import org.gradle.api.tasks.Copy
|
import org.gradle.api.tasks.Copy
|
||||||
import org.gradle.api.tasks.Exec
|
import org.gradle.api.tasks.Exec
|
||||||
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinNativeBinaryContainer
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.MAIN_COMPILATION_NAME
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.MAIN_COMPILATION_NAME
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.TEST_COMPILATION_NAME
|
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation.Companion.TEST_COMPILATION_NAME
|
||||||
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
import org.jetbrains.kotlin.gradle.plugin.mpp.*
|
||||||
import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeTest
|
import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeTest
|
||||||
import org.jetbrains.kotlin.gradle.tasks.*
|
import org.jetbrains.kotlin.gradle.tasks.*
|
||||||
import org.jetbrains.kotlin.gradle.testing.internal.configureConventions
|
import org.jetbrains.kotlin.gradle.testing.internal.configureConventions
|
||||||
import org.jetbrains.kotlin.gradle.testing.internal.registerTestTask
|
import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
@@ -145,7 +144,7 @@ open class KotlinNativeTargetConfigurator(
|
|||||||
testTask.configureConventions()
|
testTask.configureConventions()
|
||||||
}
|
}
|
||||||
|
|
||||||
registerTestTask(testTask)
|
kotlinTestRegistry.registerTestTask(testTask)
|
||||||
} else {
|
} else {
|
||||||
tasks.create(taskName, Exec::class.java).apply {
|
tasks.create(taskName, Exec::class.java).apply {
|
||||||
group = RUN_GROUP
|
group = RUN_GROUP
|
||||||
|
|||||||
+112
@@ -0,0 +1,112 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010-2019 JetBrains s.r.o. and Kotlin Programming Language contributors.
|
||||||
|
* Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.jetbrains.kotlin.gradle.testing.internal
|
||||||
|
|
||||||
|
import org.gradle.api.Project
|
||||||
|
import org.gradle.api.Task
|
||||||
|
import org.gradle.api.plugins.JavaBasePlugin
|
||||||
|
import org.gradle.api.tasks.testing.AbstractTestTask
|
||||||
|
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.TaskHolder
|
||||||
|
import org.jetbrains.kotlin.gradle.tasks.createOrRegisterTask
|
||||||
|
import org.jetbrains.kotlin.gradle.tasks.locateTask
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Internal service for creating aggregated test tasks and registering all test tasks.
|
||||||
|
* See [KotlinTestReport] for more details about aggregated test tasks.
|
||||||
|
*/
|
||||||
|
class KotlinTestsRegistry(val project: Project, val allTestsTaskName: String = "allTests") {
|
||||||
|
val allTestsTask: TaskHolder<KotlinTestReport>
|
||||||
|
get() = doGetOrCreateAggregatedTestTask(
|
||||||
|
name = allTestsTaskName,
|
||||||
|
description = "Runs the tests for all targets and create aggregated report"
|
||||||
|
) {
|
||||||
|
project.tasks.maybeCreate(LifecycleBasePlugin.CHECK_TASK_NAME)
|
||||||
|
.dependsOn(it.getTaskOrProvider())
|
||||||
|
}
|
||||||
|
|
||||||
|
fun registerTestTask(
|
||||||
|
taskHolder: TaskHolder<AbstractTestTask>,
|
||||||
|
aggregate: KotlinTestReport = allTestsTask.doGetTask()
|
||||||
|
) {
|
||||||
|
val project = taskHolder.project
|
||||||
|
|
||||||
|
project.tasks.getByName(LifecycleBasePlugin.CHECK_TASK_NAME).dependsOn(taskHolder.name)
|
||||||
|
project.cleanAllTestTask.dependsOn(cleanTaskName(taskHolder.name))
|
||||||
|
aggregate.dependsOn(taskHolder.name)
|
||||||
|
|
||||||
|
taskHolder.configure { task ->
|
||||||
|
aggregate.registerTestTask(task)
|
||||||
|
ijListenTestTask(task)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fun getOrCreateAggregatedTestTask(
|
||||||
|
name: String,
|
||||||
|
description: String,
|
||||||
|
parent: TaskHolder<KotlinTestReport>? = allTestsTask
|
||||||
|
): TaskHolder<KotlinTestReport> {
|
||||||
|
if (name == parent?.name) return parent
|
||||||
|
|
||||||
|
return doGetOrCreateAggregatedTestTask(name, description, parent?.doGetTask())
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun doGetOrCreateAggregatedTestTask(
|
||||||
|
name: String,
|
||||||
|
description: String,
|
||||||
|
parent: KotlinTestReport? = null,
|
||||||
|
configure: (TaskHolder<KotlinTestReport>) -> Unit = {}
|
||||||
|
): TaskHolder<KotlinTestReport> {
|
||||||
|
val existed = project.locateTask<KotlinTestReport>(name)
|
||||||
|
if (existed != null) return existed
|
||||||
|
|
||||||
|
val reportName = name
|
||||||
|
|
||||||
|
val aggregate: TaskHolder<KotlinTestReport> = project.createOrRegisterTask(name) { aggregate ->
|
||||||
|
aggregate.description = description
|
||||||
|
aggregate.group = JavaBasePlugin.VERIFICATION_GROUP
|
||||||
|
|
||||||
|
aggregate.destinationDir = project.testReportsDir.resolve(reportName)
|
||||||
|
|
||||||
|
if (System.getProperty("idea.active") != null) {
|
||||||
|
aggregate.extensions.extraProperties.set("idea.internal.test", true)
|
||||||
|
}
|
||||||
|
|
||||||
|
project.gradle.taskGraph.whenReady { graph ->
|
||||||
|
aggregate.maybeOverrideReporting(graph)
|
||||||
|
}
|
||||||
|
|
||||||
|
parent?.addChild(aggregate)
|
||||||
|
}
|
||||||
|
|
||||||
|
parent?.dependsOn(aggregate.getTaskOrProvider())
|
||||||
|
|
||||||
|
configure(aggregate)
|
||||||
|
|
||||||
|
return aggregate
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun cleanTaskName(taskName: String): String {
|
||||||
|
check(taskName.isNotEmpty())
|
||||||
|
return "clean" + taskName.capitalize()
|
||||||
|
}
|
||||||
|
|
||||||
|
private val Project.cleanAllTestTask: Task
|
||||||
|
get() {
|
||||||
|
val taskName = cleanTaskName(allTestsTask.name)
|
||||||
|
return tasks.findByName(taskName)
|
||||||
|
?: tasks.create(taskName, Task::class.java).also {
|
||||||
|
tasks.getByName(LifecycleBasePlugin.CLEAN_TASK_NAME).dependsOn(it)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
const val PROJECT_EXTENSION_NAME = "kotlinTestRegistry"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal val Project.kotlinTestRegistry: KotlinTestsRegistry
|
||||||
|
get() = extensions.getByName(KotlinTestsRegistry.PROJECT_EXTENSION_NAME) as KotlinTestsRegistry
|
||||||
-94
@@ -1,94 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright 2010-2019 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
|
|
||||||
* that can be found in the license/LICENSE.txt file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
package org.jetbrains.kotlin.gradle.testing.internal
|
|
||||||
|
|
||||||
import org.gradle.api.Project
|
|
||||||
import org.gradle.api.Task
|
|
||||||
import org.gradle.api.plugins.JavaBasePlugin
|
|
||||||
import org.gradle.api.tasks.testing.AbstractTestTask
|
|
||||||
import org.gradle.language.base.plugins.LifecycleBasePlugin
|
|
||||||
import org.jetbrains.kotlin.gradle.plugin.TaskHolder
|
|
||||||
import org.jetbrains.kotlin.gradle.tasks.createOrRegisterTask
|
|
||||||
import org.jetbrains.kotlin.gradle.tasks.locateTask
|
|
||||||
|
|
||||||
internal val Project.allTestsTask: TaskHolder<KotlinTestReport>
|
|
||||||
get() = getOrCreateAggregatedTestTask(
|
|
||||||
name = "allTests",
|
|
||||||
description = "Runs the tests for all targets and create aggregated report",
|
|
||||||
reportName = "all"
|
|
||||||
) {
|
|
||||||
tasks.maybeCreate(LifecycleBasePlugin.CHECK_TASK_NAME)
|
|
||||||
.dependsOn(it.getTaskOrProvider())
|
|
||||||
}
|
|
||||||
|
|
||||||
internal fun Project.getOrCreateAggregatedTestTask(
|
|
||||||
name: String,
|
|
||||||
description: String,
|
|
||||||
reportName: String,
|
|
||||||
parent: KotlinTestReport? = null,
|
|
||||||
configure: (TaskHolder<KotlinTestReport>) -> Unit = {}
|
|
||||||
): TaskHolder<KotlinTestReport> {
|
|
||||||
val existed = locateTask<KotlinTestReport>(name)
|
|
||||||
if (existed != null) return existed
|
|
||||||
|
|
||||||
val aggregate: TaskHolder<KotlinTestReport> = createOrRegisterTask(name) { aggregate ->
|
|
||||||
aggregate.description = description
|
|
||||||
aggregate.group = JavaBasePlugin.VERIFICATION_GROUP
|
|
||||||
|
|
||||||
aggregate.destinationDir = testReportsDir.resolve(reportName)
|
|
||||||
|
|
||||||
if (System.getProperty("idea.active") != null) {
|
|
||||||
aggregate.extensions.extraProperties.set("idea.internal.test", true)
|
|
||||||
}
|
|
||||||
|
|
||||||
project.gradle.taskGraph.whenReady { graph ->
|
|
||||||
aggregate.maybeOverrideReporting(graph)
|
|
||||||
}
|
|
||||||
|
|
||||||
parent?.addChild(aggregate)
|
|
||||||
}
|
|
||||||
|
|
||||||
parent?.dependsOn(aggregate.getTaskOrProvider())
|
|
||||||
|
|
||||||
configure(aggregate)
|
|
||||||
|
|
||||||
return aggregate
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun cleanTaskName(taskName: String): String {
|
|
||||||
check(taskName.isNotEmpty())
|
|
||||||
return "clean" + taskName.capitalize()
|
|
||||||
}
|
|
||||||
|
|
||||||
private val Project.cleanAllTestTask: Task
|
|
||||||
get() {
|
|
||||||
val taskName = cleanTaskName(allTestsTask.name)
|
|
||||||
return tasks.findByName(taskName)
|
|
||||||
?: tasks.create(taskName, Task::class.java).also {
|
|
||||||
tasks.getByName(LifecycleBasePlugin.CLEAN_TASK_NAME).dependsOn(it)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Suppress("UnstableApiUsage")
|
|
||||||
internal fun registerTestTask(taskHolder: TaskHolder<AbstractTestTask>) {
|
|
||||||
registerTestTaskInAggregate(taskHolder, taskHolder.project.allTestsTask.doGetTask())
|
|
||||||
}
|
|
||||||
|
|
||||||
internal fun registerTestTaskInAggregate(
|
|
||||||
taskHolder: TaskHolder<AbstractTestTask>,
|
|
||||||
allTests: KotlinTestReport
|
|
||||||
) {
|
|
||||||
val project = taskHolder.project
|
|
||||||
|
|
||||||
project.tasks.getByName(LifecycleBasePlugin.CHECK_TASK_NAME).dependsOn(taskHolder.name)
|
|
||||||
project.cleanAllTestTask.dependsOn(cleanTaskName(taskHolder.name))
|
|
||||||
allTests.dependsOn(taskHolder.name)
|
|
||||||
|
|
||||||
taskHolder.configure { task ->
|
|
||||||
allTests.registerTestTask(task)
|
|
||||||
ijListenTestTask(task)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user