我们在Gradle构建文件中有一个名为integration
的任务,它扩展了Test并用于运行我们所有的集成测试。我们的集成测试需要相当长的时间才能运行,因为正如您所料,我们有很多。由于一些冗长的数据库交互,其中一些可以运行长达10分钟。
现在我所能看到的只是>Building > :integration
。而且它在那个时间点......很长一段时间。我经常不确定它是否只是在一堆长时间测试的中间,或者它是否挂在一些它不应该挂在的东西上。
所以,我想知道是否有办法让他们啰嗦地跑?所以我可以看到我们实际上在哪个测试?我只是希望命令行吐出类似的东西:
Running test <testName>: Started...Complete (231 sec)
我查看了Gradle文档,但没有看到任何显示如何完成此操作的内容。当然,我对此有点新意,所以...如果有人知道如何做到这一点?我希望有一个标志就是这样,但如果可以通过一些我愿意学习的脚本来完成。请指出我的方向......
答案 0 :(得分:1)
查看this DSL doc。一般来说,您需要的是使用beforeTest
和afterTest
闭包。您可以将调用保持在全局映射中。
def times = [:]
test {
beforeTest { td ->
times[td.name] = System.currentTimeMillis()
println "$td.name started"
}
afterTest { td ->
println "$td.name finished in ${System.currentTimeMillis() - times[td.name]}"
}
}
我不确定这是否是同步的。你需要尝试。