Gradle Test,详细运行?

时间:2014-04-09 16:47:19

标签: java testing logging command-line gradle

我们在Gradle构建文件中有一个名为integration的任务,它扩展了Test并用于运行我们所有的集成测试。我们的集成测试需要相当长的时间才能运行,因为正如您所料,我们有很多。由于一些冗长的数据库交互,其中一些可以运行长达10分钟。

现在我所能看到的只是>Building > :integration。而且它在那个时间点......很长一段时间。我经常不确定它是否只是在一堆长时间测试的中间,或者它是否挂在一些它不应该挂在的东西上。

所以,我想知道是否有办法让他们啰嗦地跑?所以我可以看到我们实际上在哪个测试?我只是希望命令行吐出类似的东西:

Running test <testName>: Started...Complete (231 sec)

我查看了Gradle文档,但没有看到任何显示如何完成此操作的内容。当然,我对此有点新意,所以...如果有人知道如何做到这一点?我希望有一个标志就是这样,但如果可以通过一些我愿意学习的脚本来完成。请指出我的方向......

1 个答案:

答案 0 :(得分:1)

查看this DSL doc。一般来说,您需要的是使用beforeTestafterTest闭包。您可以将调用保持在全局映射中。

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]}"
   }
}

我不确定这是否是同步的。你需要尝试。