从多平台 kotlin commonTest 代码观察标准输出

问题描述 投票:0回答:4

我只想在我的 Kotlin 多平台

println(...)
代码中查看一些简单
commonTest
的输出。我的
build.gradle.kts
看起来有点像:

import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget

plugins {
    kotlin("multiplatform") version "1.3.61"
    kotlin("plugin.serialization") version "1.3.61"
}


kotlin {

   sourceSets {

        val commonMain by getting { ... }

        val commonTest by getting {
           dependencies {
              implementation("org.jetbrains.kotlin:kotlin-test-common")
              implementation("org.jetbrains.kotlin:kotlin-test-annotations-common")
           }
        }

        val jvmMain by getting { ... }

        val jvmTest by getting {
           dependencies {
              implementation(kotlin("test-junit"))
           }
        }

        // and so on ...

   }

}

同时在

~/src/commonTest/kotlin/my/company/library/CommonTest.kt
:

package my.company.library

import kotlin.test.*

class CommonTest() {

   @Test
   fun testTrue() {
      println("Hello, test!")
      assertTrue(true)
   }

}

目前我正在运行这样的测试

./gradlew jvmTest

我想看到

Hello, test!
显示在终端中。我不介意在命令行上多输入一点内容。

涉及SO的各种答案涉及

testLogging.showStandardStreams
指的是“标准”gradle测试目标,我不确定它如何或是否实际与多平台测试目标交互。

unit-testing gradle kotlin stdout kotlin-multiplatform
4个回答
1
投票

您可以通过将其添加到您的

build.gradle.kts
来使其工作:

tasks.withType<Test> {
    testLogging {
        showStandardStreams = true
    }
}

0
投票

将以下内容添加到您的 gradle 配置中:

iosTest {
    testLogging {
        events("PASSED", "FAILED", "SKIPPED")
        exceptionFormat = "full"
        showStandardStreams = true
        showStackTraces = true
    }
}

对于 JVM,它会类似,但在块下

jvmTest


0
投票

就我而言,这有效:

afterEvaluate {
    tasks.withType<AbstractTestTask> {
        testLogging {
            showStandardStreams = true
        }
    }
}

0
投票

要在 Kotlin 多平台测试中启用标准输出,您需要在

STANDARD_OUT
配置中启用
testLogging
事件。

// kotlin dsl
tasks.withType<AbstractTestTask>().configureEach {
    testLogging {
        events = setOf(
            TestLogEvent.STANDARD_OUT,
        )
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.