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.npm.npmProject
|
||||||
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinJsTest
|
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.KotlinJsTestFramework
|
||||||
|
import org.jetbrains.kotlin.gradle.targets.js.testing.KotlinTestRunnerCliArgs
|
||||||
|
|
||||||
class KotlinMocha(override val compilation: KotlinJsCompilation) : KotlinJsTestFramework {
|
class KotlinMocha(override val compilation: KotlinJsCompilation) : KotlinJsTestFramework {
|
||||||
private val project: Project = compilation.target.project
|
private val project: Project = compilation.target.project
|
||||||
@@ -46,20 +47,27 @@ class KotlinMocha(override val compilation: KotlinJsCompilation) : KotlinJsTestF
|
|||||||
ignoreOutOfRootNodes = true
|
ignoreOutOfRootNodes = true
|
||||||
)
|
)
|
||||||
|
|
||||||
|
val npmProject = compilation.npmProject
|
||||||
|
|
||||||
|
val cliArgs = KotlinTestRunnerCliArgs(
|
||||||
|
task.nodeModulesToLoad.map { npmProject.require(it) },
|
||||||
|
task.includePatterns,
|
||||||
|
task.excludePatterns
|
||||||
|
)
|
||||||
|
|
||||||
val nodeModules = listOf(
|
val nodeModules = listOf(
|
||||||
"mocha/bin/mocha",
|
"mocha/bin/mocha",
|
||||||
task.nodeModulesToLoad.single()
|
task.nodeModulesToLoad.single()
|
||||||
)
|
)
|
||||||
|
|
||||||
val npmProject = compilation.npmProject
|
|
||||||
|
|
||||||
val args = nodeJsArgs +
|
val args = nodeJsArgs +
|
||||||
nodeModules.map {
|
nodeModules.map {
|
||||||
npmProject.require(it)
|
npmProject.require(it)
|
||||||
} +
|
} + cliArgs.toList() +
|
||||||
|
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",
|
||||||
"--reporter", "mocha-teamcity-reporter"
|
"-r", "kotlin-test-js-runner/kotlin-test-nodejs-runner.js"
|
||||||
)
|
)
|
||||||
|
|
||||||
return TCServiceMessagesTestExecutionSpec(
|
return TCServiceMessagesTestExecutionSpec(
|
||||||
|
|||||||
@@ -1,26 +1,33 @@
|
|||||||
import {CliArgsParser, getDefaultCliDescription} from "./src/CliArgsParser";
|
import {CliArgsParser, getDefaultCliDescription} from "./src/CliArgsParser";
|
||||||
import {getFilteringAdapter} from "./src/Adapter";
|
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 kotlin_test = require('kotlin-test');
|
||||||
|
|
||||||
const parser = new CliArgsParser(getDefaultCliDescription());
|
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 untypedArgs = parser.parse(processArgs);
|
||||||
|
|
||||||
const realConsoleLog = console.log;
|
const initialAdapter = new kotlin_test.kotlin.test.adapters.JasmineLikeAdapter();
|
||||||
const teamCity = new TeamCityMessagesFlow(null, (payload) => realConsoleLog(payload));
|
kotlin_test.setAdapter(getFilteringAdapter(initialAdapter, untypedArgs));
|
||||||
|
|
||||||
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);
|
|
||||||
});
|
|
||||||
Reference in New Issue
Block a user