[Gradle, JS] Reduce KotlinJsTest configuration cache footprint

#KT-49095 Fixed
This commit is contained in:
Alexander Likhachev
2021-10-14 14:40:08 +03:00
committed by Space
parent 6ccfd974fa
commit f9d4e0639c
@@ -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.karma.KotlinKarma
import org.jetbrains.kotlin.gradle.targets.js.testing.mocha.KotlinMocha import org.jetbrains.kotlin.gradle.targets.js.testing.mocha.KotlinMocha
import org.jetbrains.kotlin.gradle.tasks.KotlinTest import org.jetbrains.kotlin.gradle.tasks.KotlinTest
import org.jetbrains.kotlin.gradle.utils.getValue
import org.jetbrains.kotlin.gradle.utils.newFileProperty import org.jetbrains.kotlin.gradle.utils.newFileProperty
import javax.inject.Inject import javax.inject.Inject
@@ -32,8 +33,14 @@ constructor(
) : ) :
KotlinTest(), KotlinTest(),
RequiresNpmDependencies { RequiresNpmDependencies {
private val nodeJs= NodeJsRootPlugin.apply(project.rootProject) @Transient
private val npmProject = compilation.npmProject 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 private val projectPath = project.path
@@ -144,14 +151,14 @@ constructor(
} }
override fun executeTests() { 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() super.executeTests()
} }
override fun createTestExecutionSpec(): TCServiceMessagesTestExecutionSpec { override fun createTestExecutionSpec(): TCServiceMessagesTestExecutionSpec {
val forkOptions = DefaultProcessForkOptions(fileResolver) val forkOptions = DefaultProcessForkOptions(fileResolver)
forkOptions.workingDir = npmProject.dir forkOptions.workingDir = npmProjectDir
forkOptions.executable = nodeJs.requireConfigured().nodeExecutable forkOptions.executable = nodeExecutable
val nodeJsArgs = mutableListOf<String>() val nodeJsArgs = mutableListOf<String>()