[Gradle, JS] Detect adapter automatically, not depends on JasmineLike
This commit is contained in:
+1
-1
@@ -246,7 +246,7 @@ class KotlinKarma(override val compilation: KotlinJsCompilation) : KotlinJsTestF
|
|||||||
val npmProject = compilation.npmProject
|
val npmProject = compilation.npmProject
|
||||||
val files = it.nodeModulesToLoad.map { npmProject.require(it) }
|
val files = it.nodeModulesToLoad.map { npmProject.require(it) }
|
||||||
|
|
||||||
val adapterJs = npmProject.dir.resolve("adapter.js")
|
val adapterJs = npmProject.dir.resolve("adapter-browser.js")
|
||||||
adapterJs.printWriter().use { writer ->
|
adapterJs.printWriter().use { writer ->
|
||||||
val karmaRunner = npmProject.require("kotlin-test-js-runner/kotlin-test-karma-runner.js")
|
val karmaRunner = npmProject.require("kotlin-test-js-runner/kotlin-test-karma-runner.js")
|
||||||
writer.println("require(${karmaRunner.jsQuoted()})")
|
writer.println("require(${karmaRunner.jsQuoted()})")
|
||||||
|
|||||||
+26
-6
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJsCompilation
|
|||||||
import org.jetbrains.kotlin.gradle.targets.js.KotlinGradleNpmPackage
|
import org.jetbrains.kotlin.gradle.targets.js.KotlinGradleNpmPackage
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
|
import org.jetbrains.kotlin.gradle.targets.js.RequiredKotlinJsDependency
|
||||||
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.jsQuoted
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
|
import org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootPlugin
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.npm.npmProject
|
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.testing.KotlinJsTest
|
||||||
@@ -50,14 +51,15 @@ class KotlinMocha(override val compilation: KotlinJsCompilation) : KotlinJsTestF
|
|||||||
val npmProject = compilation.npmProject
|
val npmProject = compilation.npmProject
|
||||||
|
|
||||||
val cliArgs = KotlinTestRunnerCliArgs(
|
val cliArgs = KotlinTestRunnerCliArgs(
|
||||||
task.nodeModulesToLoad.map { npmProject.require(it) },
|
include = task.includePatterns,
|
||||||
task.includePatterns,
|
exclude = task.excludePatterns
|
||||||
task.excludePatterns
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
createAdapterJs(task)
|
||||||
|
|
||||||
val nodeModules = listOf(
|
val nodeModules = listOf(
|
||||||
"mocha/bin/mocha",
|
"mocha/bin/mocha",
|
||||||
task.nodeModulesToLoad.single()
|
"./$ADAPTER_NODEJS"
|
||||||
)
|
)
|
||||||
|
|
||||||
val args = nodeJsArgs +
|
val args = nodeJsArgs +
|
||||||
@@ -66,8 +68,7 @@ class KotlinMocha(override val compilation: KotlinJsCompilation) : KotlinJsTestF
|
|||||||
} + cliArgs.toList() +
|
} + cliArgs.toList() +
|
||||||
listOf("--reporter", "mocha-teamcity-reporter") +
|
listOf("--reporter", "mocha-teamcity-reporter") +
|
||||||
listOf(
|
listOf(
|
||||||
"-r", "kotlin-test-js-runner/kotlin-nodejs-source-map-support.js",
|
"-r", "kotlin-test-js-runner/kotlin-nodejs-source-map-support.js"
|
||||||
"-r", "kotlin-test-js-runner/kotlin-test-nodejs-runner.js"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
return TCServiceMessagesTestExecutionSpec(
|
return TCServiceMessagesTestExecutionSpec(
|
||||||
@@ -77,4 +78,23 @@ class KotlinMocha(override val compilation: KotlinJsCompilation) : KotlinJsTestF
|
|||||||
clientSettings
|
clientSettings
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun createAdapterJs(task: KotlinJsTest) {
|
||||||
|
val npmProject = compilation.npmProject
|
||||||
|
val file = task.nodeModulesToLoad
|
||||||
|
.map { npmProject.require(it) }
|
||||||
|
.single()
|
||||||
|
|
||||||
|
val adapterJs = npmProject.dir.resolve(ADAPTER_NODEJS)
|
||||||
|
adapterJs.printWriter().use { writer ->
|
||||||
|
val adapter = npmProject.require("kotlin-test-js-runner/kotlin-test-nodejs-runner.js")
|
||||||
|
writer.println("require(${adapter.jsQuoted()})")
|
||||||
|
|
||||||
|
writer.println("require(${file.jsQuoted()})")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
const val ADAPTER_NODEJS = "adapter-nodejs.js"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -10,8 +10,6 @@ const defaultMochaArgs = [
|
|||||||
'place-holder',
|
'place-holder',
|
||||||
'--require',
|
'--require',
|
||||||
'place-holder',
|
'place-holder',
|
||||||
'--require',
|
|
||||||
'place-holder',
|
|
||||||
'--no-config',
|
'--no-config',
|
||||||
'--no-package',
|
'--no-package',
|
||||||
'--no-opts',
|
'--no-opts',
|
||||||
@@ -28,6 +26,5 @@ const defaultMochaArgs = [
|
|||||||
const processArgs = process.argv.slice(2, -1 * defaultMochaArgs.length);
|
const processArgs = process.argv.slice(2, -1 * defaultMochaArgs.length);
|
||||||
const untypedArgs = parser.parse(processArgs);
|
const untypedArgs = parser.parse(processArgs);
|
||||||
|
|
||||||
// TODO(ilgonmic): Try to detect adapter
|
const initialAdapter = kotlin_test.kotlin.test.detectAdapter_8be2vx$();
|
||||||
const initialAdapter = new kotlin_test.kotlin.test.adapters.JasmineLikeAdapter();
|
|
||||||
kotlin_test.setAdapter(runWithFilteringAndConsoleAdapters(initialAdapter, untypedArgs));
|
kotlin_test.setAdapter(runWithFilteringAndConsoleAdapters(initialAdapter, untypedArgs));
|
||||||
Reference in New Issue
Block a user