【问题标题】:Gradle Test, run verbosely?Gradle 测试,运行冗长?
【发布时间】:2014-04-09 16:47:19
【问题描述】:

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

现在我只能看到它们运行时的>Building > :integration。它在那一点上坐了……很长一段时间。我经常不确定它是否只是在一堆长测试的中间,或者它是否挂在它真的不应该挂的东西上。

所以,我想知道是否有办法让它们详细运行?所以我可以看到我们实际上在进行哪个测试?我只是想让命令行吐出类似的东西:

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

我查看了 Gradle 文档,但没有看到任何说明如何做到这一点的内容。当然,我对此有点陌生,所以...如果有人知道如何做到这一点?我更希望有一个可以做到这一点的标志,但如果它可以通过一些脚本来完成,我愿意学习。只需将我指向那个方向...

【问题讨论】:

标签: java testing logging command-line gradle


【解决方案1】:

查看this DSL 文档。一般来说,您需要的是使用 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]}"
   }
}

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

【讨论】:

  • 如果您希望此输出仅用于集成测试,请将这些输出添加到 integration 任务而不是 test 任务。
猜你喜欢
  • 2015-07-04
  • 1970-01-01
  • 2021-07-13
  • 1970-01-01
  • 2014-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
相关资源
最近更新 更多