Gradle, js: karma

#KT-31011 fixed
This commit is contained in:
Sergey Rostov
2019-04-11 09:08:10 +03:00
parent 92910ec3e9
commit 3dae2739a4
4 changed files with 9 additions and 13 deletions
@@ -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
@@ -49,6 +49,7 @@ data class NpmDependency(
}
private fun tryFindNodeModule(): MutableSet<File> {
// todo: transitive dependencies
var p = project
do {
val result = p.rootDir.resolve("node_modules/$key")
@@ -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.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
@@ -35,6 +36,8 @@ open class KotlinNodeJsTestTask : KotlinTestTask() {
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)
@@ -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.plugin.HasKotlinDependencies
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.testing.KotlinJsTest
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
class KotlinKarma : KotlinJsTestFramework {
@@ -31,19 +31,19 @@ class KotlinKarma : KotlinJsTestFramework {
}
override fun createTestExecutionSpec(
task: KotlinJsTest,
task: KotlinNodeJsTestTask,
forkOptions: ProcessForkOptions,
nodeJsArgs: MutableList<String>
): TCServiceMessagesTestExecutionSpec {
val clientSettings = TCServiceMessagesClientSettings(
task.name,
testNameSuffix = task.targetName,
prependSuiteName = true,
prepandSuiteName = true,
stackTraceParser = ::parseNodeJsStackTraceAsJvm,
ignoreOutOfRootNodes = true
)
val npmProjectLayout = NpmProject[task.project]
val npmProjectLayout = NpmProjectLayout[task.project]
val files = task.nodeModulesToLoad.map {
npmProjectLayout.nodeModulesDir.resolve(it).also { file ->