[Gradle, JS] Migrate in KotlinJsIrTest

This commit is contained in:
Ilya Goncharov
2020-01-14 17:46:25 +03:00
parent bf415704b6
commit dd577e1008
6 changed files with 24 additions and 21 deletions
@@ -10,8 +10,10 @@ import org.jetbrains.kotlin.gradle.plugin.CompilationExecutionSource
import org.jetbrains.kotlin.gradle.plugin.CompilationExecutionSourceSupport
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetTestRun
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrCompilation
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrSubTarget
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTest
import org.jetbrains.kotlin.gradle.targets.js.subtargets.KotlinJsSubTarget
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
import org.jetbrains.kotlin.gradle.testing.KotlinReportAggregatingTestRun
@@ -22,6 +24,9 @@ import kotlin.properties.Delegates
class JsCompilationExecutionSource(override val compilation: KotlinJsCompilation) :
CompilationExecutionSource<KotlinJsCompilation>
class JsIrCompilationExecutionSource(override val compilation: KotlinJsIrCompilation) :
CompilationExecutionSource<KotlinJsIrCompilation>
open class KotlinJsPlatformTestRun(testRunName: String, subtarget: KotlinJsSubTarget) :
KotlinTaskTestRun<JsCompilationExecutionSource, KotlinJsTest>(testRunName, subtarget.target),
CompilationExecutionSourceSupport<KotlinJsCompilation> {
@@ -43,22 +48,22 @@ open class KotlinJsPlatformTestRun(testRunName: String, subtarget: KotlinJsSubTa
}
open class KotlinJsIrPlatformTestRun(testRunName: String, subtarget: KotlinJsIrSubTarget) :
KotlinTaskTestRun<JsCompilationExecutionSource, KotlinJsTest>(testRunName, subtarget.target),
CompilationExecutionSourceSupport<KotlinJsCompilation> {
KotlinTaskTestRun<JsIrCompilationExecutionSource, KotlinJsIrTest>(testRunName, subtarget.target),
CompilationExecutionSourceSupport<KotlinJsIrCompilation> {
private var _executionSource: JsCompilationExecutionSource by Delegates.notNull()
private var _executionSource: JsIrCompilationExecutionSource by Delegates.notNull()
final override var executionSource: JsCompilationExecutionSource
final override var executionSource: JsIrCompilationExecutionSource
get() = _executionSource
set(value) {
executionTask.configure { it.compilation = value.compilation }
_executionSource = value
}
override fun setExecutionSourceFrom(compilation: KotlinJsCompilation) {
override fun setExecutionSourceFrom(compilation: KotlinJsIrCompilation) {
requireCompilationOfTarget(compilation, target)
executionSource = JsCompilationExecutionSource(compilation)
executionSource = JsIrCompilationExecutionSource(compilation)
}
}
@@ -70,9 +75,9 @@ class JsAggregatingExecutionSource(private val aggregatingTestRun: KotlinJsRepor
}
class JsIrAggregatingExecutionSource(private val aggregatingTestRun: KotlinJsIrReportAggregatingTestRun) :
KotlinAggregateExecutionSource<JsCompilationExecutionSource> {
KotlinAggregateExecutionSource<JsIrCompilationExecutionSource> {
override val executionSources: Iterable<JsCompilationExecutionSource>
override val executionSources: Iterable<JsIrCompilationExecutionSource>
get() = aggregatingTestRun.getConfiguredExecutions().map { it.executionSource }
}
@@ -114,11 +119,11 @@ open class KotlinJsReportAggregatingTestRun(
open class KotlinJsIrReportAggregatingTestRun(
testRunName: String,
override val target: KotlinJsIrTarget
) : KotlinReportAggregatingTestRun<JsCompilationExecutionSource, JsIrAggregatingExecutionSource, KotlinJsIrPlatformTestRun>(testRunName),
) : KotlinReportAggregatingTestRun<JsIrCompilationExecutionSource, JsIrAggregatingExecutionSource, KotlinJsIrPlatformTestRun>(testRunName),
KotlinTargetTestRun<JsIrAggregatingExecutionSource>,
CompilationExecutionSourceSupport<KotlinJsCompilation> {
CompilationExecutionSourceSupport<KotlinJsIrCompilation> {
override fun setExecutionSourceFrom(compilation: KotlinJsCompilation) = configureAllExecutions {
override fun setExecutionSourceFrom(compilation: KotlinJsIrCompilation) = configureAllExecutions {
setExecutionSourceFrom(compilation)
}
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.gradle.targets.js.KotlinJsIrPlatformTestRun
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsIrReportAggregatingTestRun
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsPlatformTestRun
import org.jetbrains.kotlin.gradle.targets.js.KotlinJsReportAggregatingTestRun
import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTest
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack
@@ -69,7 +70,7 @@ interface KotlinJsSubTargetDsl {
}
interface KotlinJsIrSubTargetDsl {
fun testTask(body: KotlinJsTest.() -> Unit)
fun testTask(body: KotlinJsIrTest.() -> Unit)
fun testTask(fn: Closure<*>) {
testTask {
ConfigureUtil.configure(fn, this)
@@ -13,7 +13,6 @@ import org.gradle.language.base.plugins.LifecycleBasePlugin
import org.jetbrains.kotlin.gradle.targets.js.dsl.*
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
import org.jetbrains.kotlin.gradle.targets.js.subtargets.BrowserDistribution
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpack
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig
import org.jetbrains.kotlin.gradle.targets.js.webpack.KotlinWebpackConfig.Devtool
@@ -41,7 +40,7 @@ open class KotlinBrowserJsIr @Inject constructor(target: KotlinJsIrTarget) :
}
}
override fun configureDefaultTestFramework(it: KotlinJsTest) {
override fun configureDefaultTestFramework(it: KotlinJsIrTest) {
it.useKarma {
useChromeHeadless()
}
@@ -17,7 +17,6 @@ import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsIrSubTargetDsl
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmResolverPlugin
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
import org.jetbrains.kotlin.gradle.tasks.registerTask
import org.jetbrains.kotlin.gradle.testing.internal.configureConventions
import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry
@@ -87,7 +86,7 @@ abstract class KotlinJsIrSubTarget(
}
}
override fun testTask(body: KotlinJsTest.() -> Unit) {
override fun testTask(body: KotlinJsIrTest.() -> Unit) {
testRuns.getByName(KotlinTargetWithTests.DEFAULT_TEST_RUN_NAME).executionTask.configure(body)
}
@@ -119,7 +118,7 @@ abstract class KotlinJsIrSubTarget(
)
)
val testJs = project.registerTask<KotlinJsTest>(testRun.subtargetTestTaskName()) { testJs ->
val testJs = project.registerTask<KotlinJsIrTest>(testRun.subtargetTestTaskName()) { testJs ->
val compileTask = compilation.compileKotlinTask
testJs.group = LifecycleBasePlugin.VERIFICATION_GROUP
@@ -157,7 +156,7 @@ abstract class KotlinJsIrSubTarget(
}
}
protected abstract fun configureDefaultTestFramework(it: KotlinJsTest)
protected abstract fun configureDefaultTestFramework(it: KotlinJsIrTest)
private fun configureMain() {
target.compilations.all { compilation ->
@@ -19,7 +19,7 @@ interface KotlinJsIrTestFramework : RequiresNpmDependencies {
debug: Boolean
): TCServiceMessagesTestExecutionSpec
/*
/* because KotlinJsTestFramework override it too
override val nodeModulesRequired: Boolean
get() = true
*/
@@ -7,7 +7,6 @@ package org.jetbrains.kotlin.gradle.targets.js.ir
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsIrNodeDsl
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsExec
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
import javax.inject.Inject
open class KotlinNodeJsIr @Inject constructor(target: KotlinJsIrTarget) :
@@ -29,7 +28,7 @@ open class KotlinNodeJsIr @Inject constructor(target: KotlinJsIrTarget) :
(project.tasks.getByName(runTaskName) as NodeJsExec).body()
}
override fun configureDefaultTestFramework(it: KotlinJsTest) {
override fun configureDefaultTestFramework(it: KotlinJsIrTest) {
it.useMocha { }
}