Gradle, tests: remove "Task" suffix from KotlinTest tasks (as for jvm)

This commit is contained in:
Sergey Rostov
2019-04-11 11:44:10 +03:00
parent 3dae2739a4
commit 5372fcef69
15 changed files with 28 additions and 130 deletions
@@ -1,5 +1,3 @@
import org.jetbrains.kotlin.gradle.targets.js.tasks.KotlinNodeJsTestTask
plugins {
kotlin("multiplatform").version("<pluginMarkerVersion>")
}
@@ -25,18 +23,4 @@ kotlin {
js("server")
js("client")
}
tasks {
"jsCommonTest"(KotlinNodeJsTestTask::class) {
ignoreFailures = true
}
"clientTest"(KotlinNodeJsTestTask::class) {
ignoreFailures = true
}
"serverTest"(KotlinNodeJsTestTask::class) {
ignoreFailures = true
}
}
@@ -24,7 +24,7 @@ import org.gradle.language.base.plugins.LifecycleBasePlugin
import org.gradle.language.jvm.tasks.ProcessResources
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
import org.jetbrains.kotlin.gradle.plugin.mpp.*
import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmTestTask
import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmTest
import org.jetbrains.kotlin.gradle.testing.internal.registerTestTask
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
import java.util.concurrent.Callable
@@ -364,7 +364,7 @@ abstract class KotlinTargetConfigurator<KotlinCompilationType : KotlinCompilatio
val testCompilation = target.compilations.findByName(KotlinCompilation.TEST_COMPILATION_NAME) as? KotlinCompilationToRunnableFiles<*>
?: return // Otherwise, there is no runtime classpath
target.project.tasks.create(lowerCamelCaseName(target.disambiguationClassifier, testTaskNameSuffix), KotlinJvmTestTask::class.java).apply {
target.project.tasks.create(lowerCamelCaseName(target.disambiguationClassifier, testTaskNameSuffix), KotlinJvmTest::class.java).apply {
registerTestTask(this)
targetName = target.disambiguationClassifier
@@ -3,8 +3,7 @@ package org.jetbrains.kotlin.gradle.targets.js
import org.gradle.language.base.plugins.LifecycleBasePlugin
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilationToRunnableFiles
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsPlugin
import org.jetbrains.kotlin.gradle.targets.js.tasks.KotlinNodeJsTestTask
import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnPlugin
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
import org.jetbrains.kotlin.gradle.tasks.Kotlin2JsCompile
import org.jetbrains.kotlin.gradle.tasks.registerTask
import org.jetbrains.kotlin.gradle.testing.internal.configureConventions
@@ -41,7 +40,7 @@ internal class KotlinJsCompilationTestsConfigurator(
// apply plugin (cannot do it lazy)
val nodeJs = NodeJsPlugin[target.project]
registerTask(project, testTaskName, KotlinNodeJsTestTask::class.java) { testJs ->
registerTask(project, testTaskName, KotlinJsTest::class.java) { testJs ->
testJs.group = LifecycleBasePlugin.VERIFICATION_GROUP
testJs.dependsOn(compileTestKotlin2Js, nodeJs.nodeJsSetupTask)
@@ -1,71 +0,0 @@
/*
* 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.targets.js.tasks
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.Internal
import org.gradle.process.internal.DefaultProcessForkOptions
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec
import org.jetbrains.kotlin.gradle.plugin.HasKotlinDependencies
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsPlugin
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProjectLayout
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmResolver
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTestFramework
import org.jetbrains.kotlin.gradle.targets.js.testing.karma.KotlinKarma
import org.jetbrains.kotlin.gradle.targets.js.testing.nodejs.KotlinNodeJsTestRunner
import org.jetbrains.kotlin.gradle.targets.js.testing.mocha.KotlinMocha
import org.jetbrains.kotlin.gradle.tasks.KotlinTestTask
open class KotlinNodeJsTestTask : KotlinTestTask() {
@Internal
private var testFramework: KotlinJsTestFramework = KotlinNodeJsTestRunner()
@Input
var debug: Boolean = false
@Internal
var runtimeDependencyHandler: HasKotlinDependencies? = null
@Input
var nodeModulesToLoad: MutableList<String> = mutableListOf()
fun useNodeJs(body: KotlinNodeJsTestRunner.() -> Unit) = use(KotlinNodeJsTestRunner(), body)
fun useMocha(body: KotlinMocha.() -> Unit) = use(KotlinMocha(), body)
fun useKarma(body: KotlinKarma.() -> Unit) = use(KotlinKarma(), body)
private inline fun <T : KotlinJsTestFramework> use(runner: T, body: T.() -> Unit) {
testFramework = runner.also(body)
val dependenciesHolder = runtimeDependencyHandler
if (dependenciesHolder != null) {
testFramework.configure(dependenciesHolder)
}
}
override fun executeTests() {
NpmResolver.resolve(project)
super.executeTests()
}
override fun createTestExecutionSpec(): TCServiceMessagesTestExecutionSpec {
val forkOptions = DefaultProcessForkOptions(fileResolver)
NpmResolver.resolve(project)
forkOptions.workingDir = NpmProjectLayout[project].nodeWorkDir
forkOptions.executable = NodeJsPlugin[project].buildEnv().nodeExecutable
val nodeJsArgs = mutableListOf<String>()
if (debug) {
nodeJsArgs.add("--inspect-brk")
}
return testFramework.createTestExecutionSpec(this, forkOptions, nodeJsArgs)
}
}
@@ -7,22 +7,20 @@ package org.jetbrains.kotlin.gradle.targets.js.testing
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.Internal
import org.gradle.api.tasks.SkipWhenEmpty
import org.gradle.process.internal.DefaultProcessForkOptions
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec
import org.jetbrains.kotlin.gradle.plugin.HasKotlinDependencies
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsPlugin
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProjectLayout
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmResolver
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.nodejs.KotlinNodeJsTestRunner
import org.jetbrains.kotlin.gradle.targets.js.testing.mocha.KotlinMocha
import org.jetbrains.kotlin.gradle.tasks.KotlinTest
open class KotlinJsTest : KotlinTest() {
@Internal
@SkipWhenEmpty
internal var testFramework: KotlinJsTestFramework? = null
private var testFramework: KotlinJsTestFramework = KotlinNodeJsTestRunner()
@Input
var debug: Boolean = false
@@ -39,20 +37,13 @@ open class KotlinJsTest : KotlinTest() {
fun useKarma(body: KotlinKarma.() -> Unit) = use(KotlinKarma(), body)
private inline fun <T : KotlinJsTestFramework> use(runner: T, body: T.() -> Unit): T {
check(testFramework == null) {
"testFramework already configured for task ${this.path}"
}
val testFramework = runner.also(body)
this.testFramework = testFramework
private inline fun <T : KotlinJsTestFramework> use(runner: T, body: T.() -> Unit) {
testFramework = runner.also(body)
val dependenciesHolder = runtimeDependencyHandler
if (dependenciesHolder != null) {
testFramework.configure(dependenciesHolder)
}
return testFramework
}
override fun executeTests() {
@@ -65,8 +56,8 @@ open class KotlinJsTest : KotlinTest() {
NpmResolver.resolve(project)
forkOptions.workingDir = NpmProject[project].nodeWorkDir
forkOptions.executable = NodeJsPlugin.apply(project).root.environment.nodeExecutable
forkOptions.workingDir = NpmProjectLayout[project].nodeWorkDir
forkOptions.executable = NodeJsPlugin[project].buildEnv().nodeExecutable
val nodeJsArgs = mutableListOf<String>()
@@ -74,6 +65,6 @@ open class KotlinJsTest : KotlinTest() {
nodeJsArgs.add("--inspect-brk")
}
return testFramework!!.createTestExecutionSpec(this, forkOptions, nodeJsArgs)
return testFramework.createTestExecutionSpec(this, forkOptions, nodeJsArgs)
}
}
@@ -8,12 +8,10 @@ package org.jetbrains.kotlin.gradle.targets.js.testing
import org.gradle.process.ProcessForkOptions
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec
import org.jetbrains.kotlin.gradle.plugin.HasKotlinDependencies
import org.jetbrains.kotlin.gradle.plugin.KotlinDependencyHandler
import org.jetbrains.kotlin.gradle.targets.js.tasks.KotlinNodeJsTestTask
interface KotlinJsTestFramework {
fun createTestExecutionSpec(
task: KotlinNodeJsTestTask,
task: KotlinJsTest,
forkOptions: ProcessForkOptions,
nodeJsArgs: MutableList<String>
): TCServiceMessagesTestExecutionSpec
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecuti
import org.jetbrains.kotlin.gradle.plugin.HasKotlinDependencies
import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProjectLayout
import org.jetbrains.kotlin.gradle.targets.js.tasks.KotlinNodeJsTestTask
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTestFramework
class KotlinKarma : KotlinJsTestFramework {
@@ -31,7 +31,7 @@ class KotlinKarma : KotlinJsTestFramework {
}
override fun createTestExecutionSpec(
task: KotlinNodeJsTestTask,
task: KotlinJsTest,
forkOptions: ProcessForkOptions,
nodeJsArgs: MutableList<String>
): TCServiceMessagesTestExecutionSpec {
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecuti
import org.jetbrains.kotlin.gradle.plugin.HasKotlinDependencies
import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProjectLayout
import org.jetbrains.kotlin.gradle.targets.js.tasks.KotlinNodeJsTestTask
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTestFramework
class KotlinMocha : KotlinJsTestFramework {
@@ -24,7 +24,7 @@ class KotlinMocha : KotlinJsTestFramework {
}
override fun createTestExecutionSpec(
task: KotlinNodeJsTestTask,
task: KotlinJsTest,
forkOptions: ProcessForkOptions,
nodeJsArgs: MutableList<String>
): TCServiceMessagesTestExecutionSpec {
@@ -46,7 +46,7 @@ class KotlinMocha : KotlinJsTestFramework {
val args = nodeJsArgs +
nodeModules.map {
npmProjectLayout.nodeModulesDir.resolve(it).also { file ->
check(file.isFile) { "Cannot find ${file.canonicalPath}"}
check(file.isFile) { "Cannot find ${file.canonicalPath}" }
}.canonicalPath
} +
listOf(
@@ -12,8 +12,8 @@ import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecuti
import org.jetbrains.kotlin.gradle.plugin.HasKotlinDependencies
import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProjectLayout
import org.jetbrains.kotlin.gradle.targets.js.tasks.KotlinNodeJsTestTask
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTestFramework
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
import org.jetbrains.kotlin.gradle.testing.IgnoredTestSuites
class KotlinNodeJsTestRunner : KotlinJsTestFramework {
@@ -27,7 +27,7 @@ class KotlinNodeJsTestRunner : KotlinJsTestFramework {
}
override fun createTestExecutionSpec(
task: KotlinNodeJsTestTask,
task: KotlinJsTest,
forkOptions: ProcessForkOptions,
nodeJsArgs: MutableList<String>
): TCServiceMessagesTestExecutionSpec {
@@ -10,7 +10,7 @@ import org.gradle.api.tasks.Input
import org.gradle.api.tasks.Optional
import org.gradle.api.tasks.testing.Test
open class KotlinJvmTestTask : Test() {
open class KotlinJvmTest : Test() {
@Input
@Optional
var targetName: String? = null
@@ -22,7 +22,7 @@ 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.TEST_COMPILATION_NAME
import org.jetbrains.kotlin.gradle.plugin.mpp.*
import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeTestTask
import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeTest
import org.jetbrains.kotlin.gradle.tasks.*
import org.jetbrains.kotlin.gradle.testing.internal.configureConventions
import org.jetbrains.kotlin.gradle.testing.internal.registerTestTask
@@ -129,7 +129,7 @@ open class KotlinNativeTargetConfigurator(
val taskName = binary.runTaskName ?: return
if (binary.isDefaultTestExecutable) {
tasks.create(taskName, KotlinNativeTestTask::class.java).apply {
tasks.create(taskName, KotlinNativeTest::class.java).apply {
tasks.maybeCreate(LifecycleBasePlugin.CHECK_TASK_NAME).dependsOn(this)
group = LifecycleBasePlugin.VERIFICATION_GROUP
@@ -14,11 +14,10 @@ import org.gradle.process.internal.DefaultProcessForkOptions
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSettings
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec
import org.jetbrains.kotlin.gradle.targets.native.internal.parseKotlinNativeStackTraceAsJvm
import org.jetbrains.kotlin.gradle.tasks.KotlinTestTask
import org.jetbrains.kotlin.gradle.testing.TestsGrouping
import org.jetbrains.kotlin.gradle.tasks.KotlinTest
import java.io.File
open class KotlinNativeTestTask : KotlinTestTask() {
open class KotlinNativeTest : KotlinTest() {
@Suppress("LeakingThis")
@Internal
val processOptions: ProcessForkOptions = DefaultProcessForkOptions(fileResolver)
@@ -16,7 +16,7 @@ import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecuto
import org.jetbrains.kotlin.gradle.utils.injected
import javax.inject.Inject
abstract class KotlinTestTask : AbstractTestTask() {
abstract class KotlinTest : AbstractTestTask() {
@Input
@Optional
var targetName: String? = null
@@ -10,7 +10,7 @@ import org.gradle.api.internal.plugins.DslObject
import org.gradle.api.reporting.ReportingExtension
import org.gradle.api.tasks.testing.TestTaskReports
import org.gradle.testing.base.plugins.TestingBasePlugin
import org.jetbrains.kotlin.gradle.tasks.KotlinTestTask
import org.jetbrains.kotlin.gradle.tasks.KotlinTest
import java.io.File
@Suppress("UnstableApiUsage")
@@ -22,7 +22,7 @@ internal val Project.reportsDir: File
internal val Project.testReportsDir: File
get() = reportsDir.resolve(TestingBasePlugin.TESTS_DIR_NAME)
internal fun KotlinTestTask.configureConventions() {
internal fun KotlinTest.configureConventions() {
reports.configureConventions(project, name)
conventionMapping.map("binResultsDir") { project.testResultsDir.resolve("$name/binary") }
}
@@ -10,10 +10,8 @@ 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.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
private val Project.allTestsTask: TaskHolder<AggregateTestReport>
get() = locateOrRegisterTask("allTests") { aggregate ->