Gradle, js: karma
#KT-31011 fixed
This commit is contained in:
-8
@@ -1,8 +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.targets.js.nodejs
|
|
||||||
|
|
||||||
import org.gradle.api.Project
|
|
||||||
+1
@@ -49,6 +49,7 @@ data class NpmDependency(
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun tryFindNodeModule(): MutableSet<File> {
|
private fun tryFindNodeModule(): MutableSet<File> {
|
||||||
|
// todo: transitive dependencies
|
||||||
var p = project
|
var p = project
|
||||||
do {
|
do {
|
||||||
val result = p.rootDir.resolve("node_modules/$key")
|
val result = p.rootDir.resolve("node_modules/$key")
|
||||||
|
|||||||
+3
@@ -14,6 +14,7 @@ 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.NpmProjectLayout
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.NpmResolver
|
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.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.nodejs.KotlinNodeJsTestRunner
|
||||||
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.KotlinTestTask
|
import org.jetbrains.kotlin.gradle.tasks.KotlinTestTask
|
||||||
@@ -35,6 +36,8 @@ open class KotlinNodeJsTestTask : KotlinTestTask() {
|
|||||||
|
|
||||||
fun useMocha(body: KotlinMocha.() -> Unit) = use(KotlinMocha(), 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) {
|
private inline fun <T : KotlinJsTestFramework> use(runner: T, body: T.() -> Unit) {
|
||||||
testFramework = runner.also(body)
|
testFramework = runner.also(body)
|
||||||
|
|
||||||
|
|||||||
+5
-5
@@ -11,8 +11,8 @@ import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesClientSetti
|
|||||||
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec
|
import org.jetbrains.kotlin.gradle.internal.testing.TCServiceMessagesTestExecutionSpec
|
||||||
import org.jetbrains.kotlin.gradle.plugin.HasKotlinDependencies
|
import org.jetbrains.kotlin.gradle.plugin.HasKotlinDependencies
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm
|
import org.jetbrains.kotlin.gradle.targets.js.internal.parseNodeJsStackTraceAsJvm
|
||||||
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.testing.KotlinJsTest
|
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.KotlinJsTestFramework
|
||||||
|
|
||||||
class KotlinKarma : KotlinJsTestFramework {
|
class KotlinKarma : KotlinJsTestFramework {
|
||||||
@@ -31,19 +31,19 @@ class KotlinKarma : KotlinJsTestFramework {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun createTestExecutionSpec(
|
override fun createTestExecutionSpec(
|
||||||
task: KotlinJsTest,
|
task: KotlinNodeJsTestTask,
|
||||||
forkOptions: ProcessForkOptions,
|
forkOptions: ProcessForkOptions,
|
||||||
nodeJsArgs: MutableList<String>
|
nodeJsArgs: MutableList<String>
|
||||||
): TCServiceMessagesTestExecutionSpec {
|
): TCServiceMessagesTestExecutionSpec {
|
||||||
val clientSettings = TCServiceMessagesClientSettings(
|
val clientSettings = TCServiceMessagesClientSettings(
|
||||||
task.name,
|
task.name,
|
||||||
testNameSuffix = task.targetName,
|
testNameSuffix = task.targetName,
|
||||||
prependSuiteName = true,
|
prepandSuiteName = true,
|
||||||
stackTraceParser = ::parseNodeJsStackTraceAsJvm,
|
stackTraceParser = ::parseNodeJsStackTraceAsJvm,
|
||||||
ignoreOutOfRootNodes = true
|
ignoreOutOfRootNodes = true
|
||||||
)
|
)
|
||||||
|
|
||||||
val npmProjectLayout = NpmProject[task.project]
|
val npmProjectLayout = NpmProjectLayout[task.project]
|
||||||
|
|
||||||
val files = task.nodeModulesToLoad.map {
|
val files = task.nodeModulesToLoad.map {
|
||||||
npmProjectLayout.nodeModulesDir.resolve(it).also { file ->
|
npmProjectLayout.nodeModulesDir.resolve(it).also { file ->
|
||||||
|
|||||||
Reference in New Issue
Block a user