From f9d4e0639cfd9af3299472980771006fa0562f2e Mon Sep 17 00:00:00 2001 From: Alexander Likhachev Date: Thu, 14 Oct 2021 14:40:08 +0300 Subject: [PATCH] [Gradle, JS] Reduce KotlinJsTest configuration cache footprint #KT-49095 Fixed --- .../gradle/targets/js/testing/KotlinJsTest.kt | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt index 0ecbdd887dd..c63e854c752 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/KotlinJsTest.kt @@ -20,6 +20,7 @@ import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject import org.jetbrains.kotlin.gradle.targets.js.testing.karma.KotlinKarma import org.jetbrains.kotlin.gradle.targets.js.testing.mocha.KotlinMocha import org.jetbrains.kotlin.gradle.tasks.KotlinTest +import org.jetbrains.kotlin.gradle.utils.getValue import org.jetbrains.kotlin.gradle.utils.newFileProperty import javax.inject.Inject @@ -32,8 +33,14 @@ constructor( ) : KotlinTest(), RequiresNpmDependencies { - private val nodeJs= NodeJsRootPlugin.apply(project.rootProject) - private val npmProject = compilation.npmProject + @Transient + private val nodeJs = NodeJsRootPlugin.apply(project.rootProject) + + private val npmResolutionManager by project.provider { nodeJs.npmResolutionManager } + + private val nodeExecutable by project.provider { nodeJs.requireConfigured().nodeExecutable } + + private val npmProjectDir by project.provider { compilation.npmProject.dir } private val projectPath = project.path @@ -144,14 +151,14 @@ constructor( } override fun executeTests() { - nodeJs.npmResolutionManager.checkRequiredDependencies(task = this, services = services, logger = logger, projectPath = projectPath) + npmResolutionManager.checkRequiredDependencies(task = this, services = services, logger = logger, projectPath = projectPath) super.executeTests() } override fun createTestExecutionSpec(): TCServiceMessagesTestExecutionSpec { val forkOptions = DefaultProcessForkOptions(fileResolver) - forkOptions.workingDir = npmProject.dir - forkOptions.executable = nodeJs.requireConfigured().nodeExecutable + forkOptions.workingDir = npmProjectDir + forkOptions.executable = nodeExecutable val nodeJsArgs = mutableListOf()