JAL-4167 Now we don't fail testTasks on No Matching Tests so that all testTasks run...
authorBen Soares <b.soares@dundee.ac.uk>
Fri, 28 Apr 2023 10:48:20 +0000 (11:48 +0100)
committerBen Soares <b.soares@dundee.ac.uk>
Fri, 28 Apr 2023 10:48:20 +0000 (11:48 +0100)
build.gradle

index 995d012..fd6064e 100644 (file)
@@ -1748,7 +1748,6 @@ test {
 
   // not running tests in this task
   exclude "**/*"
-
 }
 /* testTask0 is the main test task */
 task testTask0(type: Test) {
@@ -1858,12 +1857,19 @@ tasks.withType(Test).matching {t -> t.getName().startsWith("testTask")}.all { te
     // testTasks that include the tests, and exclude all from the others.
     // get --test argument
     filter.commandLineIncludePatterns = test.filter.commandLineIncludePatterns
+    // do something with testTask.getCandidateClassFiles() to see if the test should silently finish because of the
+    // commandLineIncludePatterns not matching anything.  Instead we are doing setFailOnNoMatchingTests(false) below
+
 
     if (useClover) {
       println("Running tests " + (useClover?"WITH":"WITHOUT") + " clover")
     }
   }
 
+
+  /* don't fail on no matching tests (so --tests will run across all testTasks) */
+  testTask.filter.setFailOnNoMatchingTests(false)
+
   /* ensure the "test" task dependsOn all the testTasks */
   test.dependsOn testTask
 }
@@ -1886,24 +1892,30 @@ private static String colString(styler, col, colour, text) {
 
 private static String getSummaryLine(s, pn, tn, rt, rc, rs, rf, rsk, t, col) {
   def colour = 'black'
+  def text = rt
   def nocol = false
-  switch(rt) {
-    case TestResult.ResultType.SUCCESS:
-      colour = 'green'
-      break;
-    case TestResult.ResultType.FAILURE:
-      colour = 'red'
-      break;
-    default:
-      nocol = true
-      break;
+  if (rc == 0) {
+    text = "-----"
+    nocol = true
+  } else {
+    switch(rt) {
+      case TestResult.ResultType.SUCCESS:
+        colour = 'green'
+        break;
+      case TestResult.ResultType.FAILURE:
+        colour = 'red'
+        break;
+      default:
+        nocol = true
+        break;
+    }
   }
   StringBuilder sb = new StringBuilder()
   sb.append("${pn}")
   if (tn != null)
     sb.append(":${tn}")
   sb.append(" results: ")
-  sb.append(colString(s, col && !nocol, colour, rt))
+  sb.append(colString(s, col && !nocol, colour, text))
   sb.append(" (")
   sb.append("${rc} tests, ")
   sb.append(colString(s, col && rs > 0, 'green', rs))