From 013ec37545491ab984abca58a878f1476e14397c Mon Sep 17 00:00:00 2001
From: Nico Eckes <gitkraken@eckes.dev>
Date: Mon, 21 Dec 2020 22:09:37 +0100
Subject: [PATCH] Beautify test output

---
 build.gradle.kts                              |  2 +-
 .../epro/osbkubernetes/OsbCheckerTest.java    | 30 +++++++++----------
 2 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/build.gradle.kts b/build.gradle.kts
index 3d59a77..3dbc441 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -3,6 +3,7 @@ plugins {
     id("io.spring.dependency-management") version "1.0.10.RELEASE"
     id("java")
     id("com.google.osdetector") version "1.6.2"
+    id("com.adarshr.test-logger") version "2.1.1"
 }
 
 group = "de.thbingen.epro"
@@ -51,6 +52,5 @@ dependencyManagement {
 
 tasks.withType<Test> {
     useJUnitPlatform()
-    testLogging.showStandardStreams = true
     systemProperty("spring.profiles.active", System.getProperty("profiles") ?: "test")
 }
\ No newline at end of file
diff --git a/src/test/java/de/thbingen/epro/osbkubernetes/OsbCheckerTest.java b/src/test/java/de/thbingen/epro/osbkubernetes/OsbCheckerTest.java
index da88784..ebe9ee6 100644
--- a/src/test/java/de/thbingen/epro/osbkubernetes/OsbCheckerTest.java
+++ b/src/test/java/de/thbingen/epro/osbkubernetes/OsbCheckerTest.java
@@ -7,12 +7,8 @@ import org.springframework.boot.web.server.LocalServerPort;
 import java.io.*;
 import java.nio.file.Files;
 import java.nio.file.Path;
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Properties;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-import static org.assertj.core.api.Assertions.assertThat;
+import java.util.stream.Collectors;
 
 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
 public class OsbCheckerTest {
@@ -63,16 +59,20 @@ public class OsbCheckerTest {
         }
 
         Process p = new ProcessBuilder().directory(testDir.toFile()).command("java", "-jar", checker.getFileName().toString(), '-' + type).start();
+        String output = new BufferedReader(new InputStreamReader(p.getInputStream())).lines().filter(s -> !s.startsWith("\tat")).collect(Collectors.joining("\n"));
+        int i = output.indexOf("JVM running for");
+        if (i >= 0) output = output.substring(output.indexOf('\n', i));
+        int ret = p.waitFor();
 
-        AtomicBoolean initTrigger = new AtomicBoolean(false);
-        List<String> fullOut = new ArrayList<>();
-        new BufferedReader(new InputStreamReader(p.getInputStream())).lines().filter(s -> !s.startsWith("\tat")).filter(s -> {
-            if (s.contains("JVM running for")) initTrigger.set(true);
-            fullOut.add(s);
-            return initTrigger.get();
-        }).forEach(System.out::println);
-        if (!initTrigger.get()) fullOut.forEach(System.out::println);
-
-        assertThat(p.waitFor()).isEqualTo(0);
+        if (ret != 0) {
+            throw new AssertionError("Exit code " + ret + '\n' + output) {
+                @Override
+                public String getLocalizedMessage() {
+                    return null;
+                }
+            };
+        } else {
+            System.out.println(output);
+        }
     }
 }
-- 
GitLab