Revert "Revert "Allow execution time of the slowest tests to be printed""

This reverts commit 01c15c6af9f04011680889767c0de78f9dd4e7ab.

Fixed stray removal of dependency

Change-Id: Ic82f7456fafdcab401046e3f963f7b5d996d667a
diff --git a/build.gradle b/build.gradle
index 24233a5..d9be6a4 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1911,6 +1911,9 @@
     }
 }
 
+def testTimes = [:]
+def numberOfTestTimesToPrint = 40
+
 test {
     if (project.hasProperty('generate_golden_files_to')) {
         systemProperty 'generate_golden_files_to', project.property('generate_golden_files_to')
@@ -1955,10 +1958,26 @@
         systemProperty 'desugar_jdk_libs', project.property('desugar_jdk_libs')
     }
 
+    if (project.hasProperty('print_times') || project.hasProperty('one_line_per_test')) {
+        afterTest { desc, result ->
+            def executionTime = (result.endTime - result.startTime) / 1000
+            testTimes["${desc.name} [${desc.className}]"] = executionTime
+        }
+        afterSuite { desc, result ->
+          // parent is null if all tests are done.
+          if (desc.parent == null) {
+            def sortedTimes = testTimes.sort({e1, e2 -> e2.value <=> e1.value})
+            sortedTimes.eachWithIndex{key, value, i ->
+                if (i < numberOfTestTimesToPrint) println "$key: $value"}
+          }
+        }
+    }
+
     if (project.hasProperty('one_line_per_test')) {
         beforeTest { desc ->
             println "Start executing test ${desc.name} [${desc.className}]"
         }
+
         afterTest { desc, result ->
             if (result.resultType == TestResult.ResultType.FAILURE) {
                 printStackTrace(result)