在测试时,Gradle似乎将stdout / stderr重定向到project_dir/build/reports/tests/index.html
。有没有办法避免这种重定向,而是将内容打印到控制台上?
附加信息:
- 这是一个Scala 2.9.1项目。
- 我正在使用slf4s进行日志记录。
Answers:
apply plugin : 'java'
test {
testLogging.showStandardStreams = true
}
http://gradle.org/docs/current/dsl/org.gradle.api.tasks.testing.Test.html
这需要当前的gradle版本。我假设Scala测试是在Java测试任务下运行的。
正如@roby回答的那样:
将以下代码添加到您的 build.gradle
apply plugin : 'java'
test {
testLogging.showStandardStreams = true
}
重要!
您需要运行gradle测试或使用添加的clean
命令进行构建。
./gradlew clean test
or
./gradlew clean build
希望能奏效。
如果您位于android gradle文件中(如果apply plugin: 'com.android.application'
位于build.gradle文件的顶部)
然后将其粘贴到build.gradle
// Test Logging
tasks.withType(Test) {
testLogging {
events "standardOut", "started", "passed", "skipped", "failed"
}
}
将此粘贴到build.gradle
// Test Logging
test {
testLogging {
showStandardStreams = true
}
}
只需添加:
showStandardStreams = true
是以下内容的简写:
events = ["standard_out", "standard_error"]
在将两个条目混合如下时,请记住这一点很重要:
test {
testLogging {
showStandardStreams = true
events = ["passed", "failed", "skipped"]
}
}
不会产生stdout,而相反的顺序:
test {
testLogging {
events = ["passed", "failed", "skipped"]
showStandardStreams = true
}
}
会将stdout条目添加到列表中,因此stdout将起作用。
有关详细信息,请参见源。
showStandardStreams
排在第二位,只是为了仔细检查,标准流是否会附加到事件列表中?看起来像,但只是仔细检查。
如果您使用的Kotlin DSLbuild.gradle.kts
的语法有点不同。
确保依赖项中包含junit:
dependencies {
testImplementation("org.junit.jupiter:junit-jupiter:5.4.2")
testImplementation("org.junit.jupiter:junit-jupiter-api")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine")
}
然后,您需要添加到测试任务中:
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
tasks.test {
useJUnitPlatform()
testLogging {
showStandardStreams = true
exceptionFormat = TestExceptionFormat.FULL
events("skipped", "failed")
}
}
然后,您可以根据需要调整设置。
就我而言,我正在使用Java和Spring-boot-starter-test。
我有同样的问题,问题是我没有任何测试引擎。
因此,我将一个添加到build.gradle的依赖项中,它可以正常工作。
testCompile组:“ org.junit.jupiter”,名称:“ junit-jupiter-api”,版本:dependencyVersion.junit5 testCompile组:“ org.junit.jupiter”,名称:“ junit-jupiter-engine”,版本:dependencyVersion .junit5
./gradlew --info clean build test
使用--stacktrace
option运行以获取堆栈跟踪。使用--info
或--debug
选项运行以获取更多日志输出。运行--scan
以获得完整的见解。