java - Gradle 测试 - 为失败的测试打印标准输出/标准错误
问题描述
我正在向现有项目引入一个 Github 操作管道以运行./gradlew test
. 不出所料,由于时区不匹配等各种原因,我遇到了测试在本地通过但没有在构建机器上通过的情况。
默认情况下,gradle 不会stdout
为这些测试打印 。我知道如果通过它会这样做--info
,但是测试套件的大小约为 1500 个测试,这使得管道输出非常冗长(如果我为整个套件打开它并尝试查看结果,它实际上会使我的浏览器滞后在 Github 中输出)。
为了解决最初的初期问题,我还采用了针对失败的套件(例如./gradlew test --tests "foo.bar.AppTest" --info
)。不过,这有点小题大做。有没有办法告诉 gradle 只为失败的测试打印标准输出内容?这将使我在未来处于更好的位置!
解决方案
此页面包含您要查找的内容。
它归结为像这样配置测试任务:
test {
testLogging {
// set options for log level LIFECYCLE
events "failed"
}
}
如果您阅读该页面,还有更多选项可以精细控制日志记录。
由于您可能只需要它来执行 github 操作,因此您可以使用CI
环境变量仅在 CI 环境中启用您的配置:
test {
doFirst {
if (System.getenv('CI')) {
testLogging {
// set options for log level LIFECYCLE
events "failed"
}
}
}
}
推荐阅读
- ios - UserDefaults.didChangeNotification 未触发
- html - div 边距和绝对位置
- c# - FlowLayout 控制事件
- github - github标签和作曲家
- angular - 如果装饰了 angular 2 组件,它们的类型是什么?
- reactjs - 使用 Chrome 扩展的热重载 (React)
- html - 当我将数据插入第二个文本框时,所有插入第一个文本框的数据都会被清除
- asp.net-core-2.0 - RazorPages:模型没有通过页面模型在部分中实例化
- javascript - WKWebView 弹出窗口未显示
- sql - 如果没有找到选定的行,则返回一个值 Oracle