Gradle 测试 - 为失败的测试打印 stdout/stderror
Gradle test - print stdout/stderror for failed tests
我正在向 运行 ./gradlew test
的现有项目引入 Github 操作管道。毫不奇怪,由于时区不匹配等各种原因,我 运行 遇到过测试在本地通过但在构建机器上未通过的情况。
默认情况下,gradle 不会为这些测试打印 stdout
。我知道如果通过 --info
,它会这样做,但是测试套件的大小约为 1500 个测试,这使得管道输出非常冗长(如果我为整个套件打开它实际上会使我的浏览器滞后,并且尝试在 Github 中查看结果输出)。
为了解决最初出现的问题,我还针对失败的套件(例如 ./gradlew test --tests "foo.bar.AppTest" --info
)采取了措施。不过,这有点麻烦。有没有办法告诉 gradle 只为失败的测试打印标准输出内容?这将使我在前进中处于更好的位置!
This page 包含您要查找的内容。
归结为像这样配置测试任务:
test {
testLogging {
// set options for log level LIFECYCLE
events "failed"
}
}
如果您阅读该页面,还有更多选项可以精细地控制日志记录。
由于您可能只需要在 github 操作中使用它,您可以使用 CI
environmental variable 仅在 CI 环境中启用您的配置:
test {
doFirst {
if (System.getenv('CI')) {
testLogging {
// set options for log level LIFECYCLE
events "failed"
}
}
}
}
我正在向 运行 ./gradlew test
的现有项目引入 Github 操作管道。毫不奇怪,由于时区不匹配等各种原因,我 运行 遇到过测试在本地通过但在构建机器上未通过的情况。
默认情况下,gradle 不会为这些测试打印 stdout
。我知道如果通过 --info
,它会这样做,但是测试套件的大小约为 1500 个测试,这使得管道输出非常冗长(如果我为整个套件打开它实际上会使我的浏览器滞后,并且尝试在 Github 中查看结果输出)。
为了解决最初出现的问题,我还针对失败的套件(例如 ./gradlew test --tests "foo.bar.AppTest" --info
)采取了措施。不过,这有点麻烦。有没有办法告诉 gradle 只为失败的测试打印标准输出内容?这将使我在前进中处于更好的位置!
This page 包含您要查找的内容。
归结为像这样配置测试任务:
test {
testLogging {
// set options for log level LIFECYCLE
events "failed"
}
}
如果您阅读该页面,还有更多选项可以精细地控制日志记录。
由于您可能只需要在 github 操作中使用它,您可以使用 CI
environmental variable 仅在 CI 环境中启用您的配置:
test {
doFirst {
if (System.getenv('CI')) {
testLogging {
// set options for log level LIFECYCLE
events "failed"
}
}
}
}