Migrate filtering adapter on mocha's initial adapter
This commit is contained in:
+12
-4
@@ -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(
|
||||
|
||||
@@ -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));
|
||||
Reference in New Issue
Block a user