From 07e4b1f3de8ccbfadf4acdbcd50ef6342c5f3209 Mon Sep 17 00:00:00 2001 From: Ilya Goncharov Date: Wed, 9 Oct 2019 19:58:10 +0300 Subject: [PATCH] Migrate filtering adapter on mocha's initial adapter --- .../targets/js/testing/mocha/KotlinMocha.kt | 16 ++++++-- .../tools/kotlin-test-js-runner/nodejs.ts | 41 +++++++++++-------- 2 files changed, 36 insertions(+), 21 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/mocha/KotlinMocha.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/mocha/KotlinMocha.kt index 073e4b122c6..cc1437a8d0a 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/mocha/KotlinMocha.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/targets/js/testing/mocha/KotlinMocha.kt @@ -17,6 +17,7 @@ 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.testing.KotlinJsTest import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTestFramework +import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinTestRunnerCliArgs class KotlinMocha(override val compilation: KotlinJsCompilation) : KotlinJsTestFramework { private val project: Project = compilation.target.project @@ -46,20 +47,27 @@ class KotlinMocha(override val compilation: KotlinJsCompilation) : KotlinJsTestF ignoreOutOfRootNodes = true ) + val npmProject = compilation.npmProject + + val cliArgs = KotlinTestRunnerCliArgs( + task.nodeModulesToLoad.map { npmProject.require(it) }, + task.includePatterns, + task.excludePatterns + ) + val nodeModules = listOf( "mocha/bin/mocha", task.nodeModulesToLoad.single() ) - val npmProject = compilation.npmProject - val args = nodeJsArgs + nodeModules.map { npmProject.require(it) - } + + } + cliArgs.toList() + + listOf("--reporter", "mocha-teamcity-reporter") + listOf( "-r", "kotlin-test-js-runner/kotlin-nodejs-source-map-support.js", - "--reporter", "mocha-teamcity-reporter" + "-r", "kotlin-test-js-runner/kotlin-test-nodejs-runner.js" ) return TCServiceMessagesTestExecutionSpec( diff --git a/libraries/tools/kotlin-test-js-runner/nodejs.ts b/libraries/tools/kotlin-test-js-runner/nodejs.ts index 01ac3049721..bad3957d1ba 100755 --- a/libraries/tools/kotlin-test-js-runner/nodejs.ts +++ b/libraries/tools/kotlin-test-js-runner/nodejs.ts @@ -1,26 +1,33 @@ import {CliArgsParser, getDefaultCliDescription} from "./src/CliArgsParser"; import {getFilteringAdapter} from "./src/Adapter"; -import {directRunner} from "./src/KotlinTestRunner"; -import {IgnoredTestSuitesReporting, runWithTeamCityReporter} from "./src/KotlinTestTeamCityReporter"; -import {hrTimer} from "./src/Timer"; -import {TeamCityMessagesFlow} from "./src/TeamCityMessagesFlow"; const kotlin_test = require('kotlin-test'); const parser = new CliArgsParser(getDefaultCliDescription()); -const processArgs = process.argv.slice(2); +const defaultMochaArgs = [ + '--reporter', + 'place-holder', + '--require', + 'place-holder', + '--require', + 'place-holder', + '--no-config', + '--no-package', + '--no-opts', + '--diff', + '--extension', + 'js', + '--slow', + '75', + '--timeout', + '2000', + '--ui', + 'bdd' +]; + +const processArgs = process.argv.slice(2, -1 * defaultMochaArgs.length); const untypedArgs = parser.parse(processArgs); -const realConsoleLog = console.log; -const teamCity = new TeamCityMessagesFlow(null, (payload) => realConsoleLog(payload)); - -const onIgnoredTestSuites = (untypedArgs.ignoredTestSuites - || IgnoredTestSuitesReporting.reportAllInnerTestsAsIgnored) as IgnoredTestSuitesReporting; - -const runner = runWithTeamCityReporter(directRunner, onIgnoredTestSuites, teamCity, hrTimer); -kotlin_test.setAdapter(getFilteringAdapter(runner, untypedArgs)); - -untypedArgs.free.forEach((arg: string) => { - require(arg); -}); \ No newline at end of file +const initialAdapter = new kotlin_test.kotlin.test.adapters.JasmineLikeAdapter(); +kotlin_test.setAdapter(getFilteringAdapter(initialAdapter, untypedArgs)); \ No newline at end of file