Migrate filtering adapter on mocha's initial adapter

This commit is contained in:
Ilya Goncharov
2019-10-09 19:58:10 +03:00
parent 9ab2b928bc
commit 07e4b1f3de
2 changed files with 36 additions and 21 deletions
@@ -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(
+24 -17
View File
@@ -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);
});
const initialAdapter = new kotlin_test.kotlin.test.adapters.JasmineLikeAdapter();
kotlin_test.setAdapter(getFilteringAdapter(initialAdapter, untypedArgs));