如何在Kotlin Gradle中配置testLogging的events?
如何在Kotlin Gradle中配置testLogging的events?
我来帮你搞定这个问题~你把Groovy Gradle的测试日志配置转成Kotlin DSL时踩的坑我也遇到过,原来的写法确实会触发编译错误,接下来给你说正确的配置方式:
首先先回顾你要转换的Groovy代码:
test { testLogging { events "passed", "skipped", "failed" } }
在Gradle Kotlin DSL里,testLogging的events是一个ConfigurableSet类型,不能像你之前那样直接用=赋值,得用它提供的专用方法来配置。这里有两种常用的正确写法:
写法一:直接调用events()方法(最简洁)
这个方法支持传入可变参数,和Groovy的写法最接近:
tasks.test { useJUnitPlatform() testLogging { // 直接传入事件名称即可,不用手动包装成集合 events("PASSED", "FAILED", "SKIPPED") } }
写法二:用set()方法赋值集合
如果你需要用集合变量来传递事件列表,可以用这种方式:
tasks.test { useJUnitPlatform() testLogging.events.set(setOf("PASSED", "FAILED", "SKIPPED")) }
另外补充个小技巧:如果是要在原有事件基础上追加新的事件,而不是完全覆盖,还可以用+=操作符:
tasks.test { useJUnitPlatform() testLogging { events += setOf("PASSED", "FAILED", "SKIPPED") } }
这样配置后,就能像Groovy版本一样,让测试任务输出通过、失败和跳过的测试日志啦~
备注:内容来源于stack exchange,提问作者Safiullah Kakar
相关产品推荐
相关产品推荐

