rra/ilgonmic/KT-52221-dry-run-with-empty-nodejs

[Gradle, JS] Disable for wasm

[Gradle, JS] Add test on mocha with dry run should report test state

[Gradle, JS] When run in dry mode, we need special adapter which not run tests

Merge-request: KT-MR-6205
Merged-by: Ilya Goncharov <Ilya.Goncharov@jetbrains.com>


^KT-52221 fixed
This commit is contained in:
Ilya Goncharov
2022-05-11 13:27:31 +00:00
committed by Space
parent ecbf9cd4d5
commit 75bc90f512
5 changed files with 50 additions and 11 deletions
@@ -25,6 +25,7 @@ import org.jetbrains.kotlin.gradle.util.normalizePath
import org.junit.jupiter.api.Disabled
import org.junit.jupiter.api.DisplayName
import org.junit.jupiter.api.condition.DisabledIf
import java.io.File
import java.nio.file.Files
import java.nio.file.Paths
import java.util.zip.ZipFile
@@ -1150,6 +1151,25 @@ abstract class AbstractKotlin2JsGradlePluginIT(protected val irBackend: Boolean)
assertOutputDoesNotContain("##teamcity[")
}
projectPath.resolve("src/test/kotlin/Tests.kt").appendText(
"\n" + """
|class Tests3 {
| @Test
| fun testHello() {
| throw IllegalArgumentException("foo")
| }
|}
""".trimMargin()
)
buildAndFail("nodeTest") {
assertTasksFailed(":nodeTest")
assertTestResults(
projectPath.resolve("TEST-all.xml"),
"nodeTest"
)
}
projectPath.resolve("src/test/kotlin/Tests.kt").appendText(
"\n" + """
|
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<results>
<testsuite name="Tests" tests="1" skipped="0" failures="0" errors="0" timestamp="..." hostname="..." time="...">
<properties />
<testcase name="testHello[node]" classname="Tests" time="..." />
<system-out />
<system-err />
</testsuite>
<testsuite name="Tests3" tests="1" skipped="0" failures="1" errors="0" timestamp="..." hostname="..." time="...">
<properties />
<testcase name="testHello[node]" classname="Tests3" time="...">
<failure message="..." type="IllegalArgumentException">...</failure>
</testcase>
<system-out />
<system-err />
</testsuite>
</results>
@@ -53,7 +53,7 @@ class TCServiceMessagesTestExecutor(
if (spec.dryRunArgs != null) {
val exec = execHandleFactory.newExec()
spec.forkOptions.copyTo(exec)
exec.args = spec.args
exec.args = spec.dryRunArgs
// We do not need output by dry run of tests
exec.standardOutput = object : OutputStream() {
override fun write(b: Int) {
@@ -102,16 +102,17 @@ class KotlinMocha(@Transient override val compilation: KotlinJsCompilation, priv
}
}
val dryRunArgs = mutableListOf(
"--require",
npmProject.require("source-map-support/register.js")
).apply {
if (debug) {
add("--inspect-brk")
}
add(createAdapterJs(file, "kotlin-test-nodejs-empty-runner", ADAPTER_EMPTY_NODEJS).canonicalPath)
addAll(cliArgs.toList())
if (platformType == KotlinPlatformType.wasm) {
val dryRunArgs = if (platformType == KotlinPlatformType.wasm)
null
else {
mutableListOf(
"--require",
npmProject.require("source-map-support/register.js")
).apply {
add(mocha)
add(createAdapterJs(file, "kotlin-test-nodejs-empty-runner", ADAPTER_EMPTY_NODEJS).canonicalPath)
addAll(cliArgs.toList())
addAll(cliArg("-n", "experimental-wasm-typed-funcref,experimental-wasm-gc,experimental-wasm-eh"))
}
}